如何在mingodb的nodejs中构建动态更新查询?

时间:2013-03-16 19:25:25

标签: node.js mongodb

我想创建一个动态查询,根据用户输入更新mongodb集合中的文档。用户可以更新文档中的一些或所有字段。该文档还包含允许用户添加元素的数组。我知道如何为“查找”查询构建简单的动态查询,但却遇到了可能包含$set$addToSet$pull等元素的更新查询。

我的最终查询将如下所示:

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

将有条件地添加查询更新部分中的所有元素。

我搜索了SO和其他地方,我没有看到任何显示如何实现此目的的示例。希望其他许多人也会觉得这很有用。

任何和所有帮助表示赞赏!

1 个答案:

答案 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);