在mongo shell中,我可以执行此命令:
db.getSiblingDB('myDatabase')
.myCollection
.find({
city_id:{$ne:123},
company: {$not: new RegExp('^acme.*', 'i')}
})
.forEach(function (item) {
var x = db.myCollection.findOne({
city_id:123,
company:'abc123'
});
item.address = x.address;
item.phone = x.phone;
db.myCollection.deleteOne({_id: item._id});
db.myCollection.insert(item);
});
如何在pymongo或任何其他mongodb python驱动程序中编写?
答案 0 :(得分:0)
使用pyMongo,您可以执行类似
的操作for item in db.myDatabase.myCollection.find({
city_id:{$ne:123},
company: {$not: new RegExp('^acme.*', 'i')}
}):
//Do what you are doing in ForEach fucntion
答案 1 :(得分:0)
根据@AnirudhBagri的建议,以下是有效的:
x = db.myCollection.find_one({city_id:123, company:'abc123'})
for item in db.myCollection.find({"$and": [{"city_id": {'$ne':123}}, {"company": {'$not': re.compile('^acme.*')}}]}):
item.address = x.address
item.phone = x.phone
db.myCollection.delete_one({"_id": item._id});
db.myCollection.insert(item)