如何在MongoDB中手动添加引用

How do I manually add a reference in MongoDB?

本文关键字:添加 引用 MongoDB      更新时间:2024-01-25

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

我现在得到了以下文件:

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

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

正如你在上面看到的,我已经使用ObjectID关键字尝试过了,但没有成功。。。

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

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

这给了我一个看起来像这样的文档(我的foo集合只包含你的样本,所以我不必有特定的匹配标准):

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

在mongo shell中运行以下更新:

db.collection.update({"_id" : ObjectId("500abe6a25dff13c7c000001")},
                     {$push:{"contacts": ObjectId("500abe6a2543213c7c000002")}})

为您的特定案例使用适当的ObjectId值。