如何在 MongoDB 中手动添加引用?

bod*_*ser 3 javascript reference mongodb

我在开发过程中使用 Node.js Web 前端访问 MongoDB 文档。

我现在得到以下文件:

{
   "_id": ObjectID("500abe6a25dff13c7c000001")
    , "username": "kyogron"
    , "email": "kyogron@example.de"
    , "contacts": [ObjectID("500abe6a2543213c7c000002")] // this should contain other user's id
}
Run Code Online (Sandbox Code Playgroud)

我现在想在前端实现该功能之前手动将另一个 user_id 添加到联系人数组中。

正如您在上面看到的,我已经尝试使用 ObjectID 关键字,但这不起作用......

Ada*_*ord 5

这在 MongoDB shell 中对我有用,我使用$addToSet而不是$push因为我假设你想避免欺骗:

var o = new ObjectId();
db.foo.update({}, {$addToSet : {"contacts" : o}});
var o = new ObjectId();
db.foo.update({}, {$addToSet : {"contacts" : o}});
Run Code Online (Sandbox Code Playgroud)

这给了我一个如下所示的文档(我的 foo 集合仅包含您的示例,因此我不必有特定的匹配标准):

{
    "_id" : ObjectId("500c2118c78bb07bfbb69eb3"),
    "contacts" : [
        ObjectId("500c20efc78bb07bfbb69eb2"),
        ObjectId("500c227ac78bb07bfbb69eb6")
    ],
    "email" : "kyogron@example.de",
    "username" : "kyogron"
}
Run Code Online (Sandbox Code Playgroud)