Py学习  »  MongoDB

如何在MongoDB中从数组中提取对象

canmustu • 4 年前 • 654 次点击  

我有拉朋友的请求时,它被接受或取消。所以,当我试图从数组中提取它时,它不起作用。

它符合 0个

当我删除 requested_at 从用户字段,它工作得很好。

{
    "_id" : ObjectId("5cb18680aa024b2d441f93cc"),
    "friends" : [],
    "friend_requests" : [ 
        {
            "user" : {
                "id" : ObjectId("5cb14fd7db537905c89e0a72"),
                "requested_at" : ISODate("2019-04-14T17:51:00.588Z")
            }
        }
    ]
}

MongoDB查询

db.getCollection('users').updateOne(
    { _id: ObjectId("5cb18680aa024b2d441f93cc") },
    {
        $pull: {
            friend_requests: {
                user: {
                    id: ObjectId("5cb14fd7db537905c89e0a72")
                }
            }
        }
    });

结果

{
    "acknowledged" : true,
    "matchedCount" : 1.0,
    "modifiedCount" : 0.0
}
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53754
 
654 次点击  
文章 [ 1 ]  |  最新文章 4 年前
mickl
Reply   •   1 楼
mickl    4 年前

使用点符号指定条件:

db.users.updateOne(
    { _id: ObjectId("5cb18680aa024b2d441f93cc") },
    {
        $pull: {
            "friend_requests": {
                "user.id": ObjectId("5cb14fd7db537905c89e0a72")
            }
        }
    });