使用Node.js,mongoDB,mongoose:
我有一个db集合,其中记录包含字符串数组字段。
我需要删除与传递的字符串匹配的所有记录数组中的项目。
这包括查找所有包含匹配数组的记录,从数组中拼接项目并将记录保存回db。
我正在努力解决如何做到这一点。
答案 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(){})