0

我想创建一个动态查询,根据用户输入更新 Mongodb 集合中的文档。用户可以更新文档中的部分或全部字段。该文档还包含一个允许用户添加元素的数组。我知道如何为“查找”查询构建简单的动态查询,但在处理可能具有 , 等元素的更新查询时遇到$set$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 回答