2016-09-07 4 views
1

addToSetをmongooseとすると、オブジェクトの新しく挿入されたIDを取得する方法を教えてください。この例では、フレンドの_idがフレンドリーコレクションに追加されています。フレンドはモデル内で_idフィールドを持つものとして定義されています。addToSetでmongodb mongooseに挿入したオブジェクトの_idを取得するには

db.user.update(
    { _id: 1 }, 
    { $addToSet: { friends: {name:"bob"} } } 
) 

答えて

1

addToSet()はオブジェクトを配列に追加します。私が正しくあなたの質問を理解するのであれば、これはうまくいくかもしれない:

セットはそもそも空だった場合にのみ動作します
db.user.update(
    { _id: 1 }, 
    { $addToSet: { friends: {name:"bob"} } }, 
    { new: true} 
).exec((err, user) => { 
    user.friends // an array 
    var bob = user.friends.filter(x => x.name == "bob"); 
    bob._id 
}) 
+0

- しかし、アイテムがセットにすでに存在する場合はケースをサポートする必要があります。 – MonkeyBonkey

+0

そうですね、配列を照会する必要があります。私の答えを更新してください。 – vdj4y

+0

あ、そうです、mongodbの現在のバージョンが最新の更新と同時に集計できるかどうかわかりません。おそらく、返された配列をフィルタリングするだけかもしれません – vdj4y

関連する問題