我在开发过程中使用node.js web-front-end访问MongoDB文档。
我现在关注文件:
{
"_id": ObjectID("500abe6a25dff13c7c000001")
, "username": "kyogron"
, "email": "kyogron@example.de"
, "contacts": [ObjectID("500abe6a2543213c7c000002")] // this should contain other user's id
}
我现在想要在前端实现该功能之前手动将另一个user_id添加到contacts数组中。
如上所述,我已经尝试使用ObjectID关键字尝试此操作,但这不起作用...
答案 0 :(得分:4)
这对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"
}
答案 1 :(得分:1)
在mongo shell中运行以下更新:
db.collection.update({"_id" : ObjectId("500abe6a25dff13c7c000001")},
{$push:{"contacts": ObjectId("500abe6a2543213c7c000002")}})
为特定情况使用适当的ObjectId值。