在开发过程中,我使用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关键字尝试过了,但是这不起作用……
发布于 2012-07-22 23:57:09
在MongoDB外壳中,这对我很有效,我使用$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"
}
发布于 2012-07-22 23:57:39
在mongo shell中运行以下更新:
db.collection.update({"_id" : ObjectId("500abe6a25dff13c7c000001")},
{$push:{"contacts": ObjectId("500abe6a2543213c7c000002")}})
针对您的特定情况使用适当的ObjectId值。
https://stackoverflow.com/questions/11601465
复制相似问题