Mongoose:如何使用与数组中的一个项匹配的数组值更新文档?

时间:2012-04-11 21:27:44

标签: node.js mongodb mongoose

使用Node.js,mongoDB,mongoose:

我有一个db集合,其中记录包含字符串数组字段。

我需要删除与传递的字符串匹配的所有记录数组中的项目。

这包括查找所有包含匹配数组的记录,从数组中拼接项目并将记录保存回db。

我正在努力解决如何做到这一点。

2 个答案:

答案 0 :(得分:4)

您应该可以使用$pull$pullAll执行此操作(如此处所述:www.mongodb.org/display/DOCS/Updating#Updating-%24pull)。例如,在shell中:

> db.coll.update({}, {$pull : {arrField : passedString}}, false, true);

这会通过从arrField数组中提取passString来更新所有文档(如果存在)。 (false表示没有upsert,true表示更新多个文档。)

答案 1 :(得分:3)

您可以使用类似

的内容
Model.update({}, {$pull : {arrField : passedString}}, function(){})