3

開発中、node.jsWebフロントエンドを使用してMongoDBドキュメントにアクセスしています。

私は今次の文書を手に入れました:

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

フロントエンドに機能を実装する前に、contacts配列に別のuser_idを手動で追加したいと思います。

上記のように、私はすでにObjectIDキーワードを使用してこれを試しましたが、これは機能しませんでした...

4

2 に答える 2

4

これは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-22T15:57:08.657 に答える
1

mongoシェルで、次の更新を実行します。

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

特定のケースに適したObjectId値を使用してください。

于 2012-07-22T15:57:38.823 に答える