我想创建一个动态查询,根据用户输入更新mongodb集合中的文档。用户可以更新文档中的一些或所有字段。该文档还包含允许用户添加元素的数组。我知道如何为“查找”查询构建简单的动态查询,但却遇到了可能包含$set
,$addToSet
,$pull
等元素的更新查询。
我的最终查询将如下所示:
Col.update({'_id' : bookId}, {$inc : {'total_count' : 1}, $set: {'name': name}, $addToSet : {'reviewed_by' : user}})
将有条件地添加查询更新部分中的所有元素。
我搜索了SO和其他地方,我没有看到任何显示如何实现此目的的示例。希望其他许多人也会觉得这很有用。
任何和所有帮助表示赞赏!
答案 0 :(得分:1)
不确定我是否正确理解你,但听起来你正在寻找的只是javascript ......
var update = {};
if( ... ) // do increment?
update['$inc'] = {'total_count': 1};
// and so on...
if(Object.keys(update).length)
Col.update({'_id': bookId}, update);