我希望找到一个条件简单的文档,但会根据不同的条件和情况对其进行更新。
这是我写的,但我不知道如何在var rx_CondoIndicator = /\bCONDO(MINIUM)?(?!S)/;
var rx_TownhouseIndicator = /\bTOWN\s*(HOUSE|HOME)(?!S)/;
var rx_TimeshareIndicator = /\bTIMESHARE(?!S)/;
或this
上应用更改。
这可能吗?
obj
答案 0 :(得分:1)
你有没有尝试过" findAndModify"关于集合的方法?
db.devices.findAndModify({
query: {unique_id:"test"},
update: {installed_apps: [{app_id:ObjectId("555390cb8af1031b237e2b32")}]},
upsert: true
});
db.devices.update({
{unique_id:"test"},
{ $push: { installed_apps: {<KEY>:<VAL>}}},
{
upsert: true,
multi: true
}
});
答案 1 :(得分:0)
你的意思是这样吗?
> db.foo.insert({"a": 1, "b": 2})
> db.foo.insert({"a": 1, "b": 0})
> db.foo.insert({"a": 0, "b": 1})
> db.foo.find().map(function(doc) {
if (doc.a == 1 & doc.b == 2) {
doc.a = 3;
db.foo.save(doc);
return(true);
} else {
return(false);
}
})
[ true, false ]
> db.foo.find({}, {_id: 0})
{ "a" : 3, "b" : 2 }
{ "a" : 1, "b" : 0 }
{ "a" : 0, "b" : 1 }
此方法的一个问题是find
不支持$isolate
,因此您必须手动处理多次读取。