0

ユーザー入力に基づいてMongodbコレクション内のドキュメントを更新する動的クエリを作成したいと思います。ユーザーは、ドキュメント内の一部またはすべてのフィールドを更新できます。このドキュメントには、ユーザーが要素を追加できる配列も含まれています。$set'find'クエリの単純な動的クエリを作成する方法を知っていますが、、、などの要素$addToSetを含む可能性のある更新クエリに苦労しています。$pull

私の最終的なクエリは次のようになります。

Col.update({'_id' : bookId}, {$inc : {'total_count' : 1}, $set: {'name': name}, $addToSet : {'reviewed_by' : user}})

クエリの更新部分のすべての要素が条件付きで追加されます。

SOや他の場所で検索しましたが、これを実現する方法を示す例はありません。うまくいけば、他の多くの人もこれが役立つと思うでしょう。

4

1 に答える 1

2

私があなたを正しく理解しているかどうかはわかりませんが、あなたが探しているのは本当にJavaScriptだけのようです...

var update = {};
if( ... ) // do increment?
    update['$inc'] = {'total_count': 1};

// and so on...

if(Object.keys(update).length)
    Col.update({'_id': bookId}, update);
于 2013-03-16T19:38:32.820 に答える