[英]How to pull an object from array in MongoDB
I have pull friend request when it is accepted or canceled.当它被接受或取消时,我有拉朋友请求。 So, when I try to pull it from array, it doesn't work.
因此,当我尝试从数组中提取它时,它不起作用。
It matches for 1 document but 0 document modified.它匹配1 个文档,但修改了0 个文档。
When I delete the requested_at
field from user field, it works well.当我从用户字段中删除
requested_at
字段时,它运行良好。
Where do I make mistake at ?我在哪里出错?
MongoDB Document MongoDB 文档
{
"_id" : ObjectId("5cb18680aa024b2d441f93cc"),
"friends" : [],
"friend_requests" : [
{
"user" : {
"id" : ObjectId("5cb14fd7db537905c89e0a72"),
"requested_at" : ISODate("2019-04-14T17:51:00.588Z")
}
}
]
}
MongoDB Query MongoDB 查询
db.getCollection('users').updateOne(
{ _id: ObjectId("5cb18680aa024b2d441f93cc") },
{
$pull: {
friend_requests: {
user: {
id: ObjectId("5cb14fd7db537905c89e0a72")
}
}
}
});
Result结果
{
"acknowledged" : true,
"matchedCount" : 1.0,
"modifiedCount" : 0.0
}
Use dot notation to specify a condition:使用点表示法指定条件:
db.users.updateOne(
{ _id: ObjectId("5cb18680aa024b2d441f93cc") },
{
$pull: {
"friend_requests": {
"user.id": ObjectId("5cb14fd7db537905c89e0a72")
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.