Mongodb将查找和更新结合起来
是否可以基于查找值更新数据库Mongodb将查找和更新结合起来,mongodb,lookup,Mongodb,Lookup,是否可以基于查找值更新数据库 pipeline = [ {'$limit': 10000}, # to limit query for testing purpose {'$lookup': # left join of user_cities DB {'from': 'weather_mapping', 'localField': 'cityId', 'foreignField': 'id', 'as': 'mapping'} }, {'$lo
pipeline = [
{'$limit': 10000}, # to limit query for testing purpose
{'$lookup': # left join of user_cities DB
{'from': 'weather_mapping',
'localField': 'cityId',
'foreignField': 'id',
'as': 'mapping'}
},
{'$lookup': # left join of user_cities DB
{'from': 'weather',
'localField': 'mapping.okato',
'foreignField': 'okato',
'as': 'weahter'}
}, ]
{'$out': 'activity_weather'} #HERE I WOULD LIKE TO UPDATE THE ORIGINAL DOCUMENT RATHER THAN GENERATING A NEW ONE
db['activity'].aggregate(pipeline, allowDiskUse=True)
是否可以包含更新命令而不是“$out”,或者反之亦然,在更新命令中放入$lookup?否,这是不可能的。您可以循环输出游标并发布更新,最好使用批量API,但服务器上没有包含更新的操作。另外,由于
$lookup
正在从另一个集合获取数据,因此也不可能通过单个操作写入多个集合。即使批量API操作也只能处理一个集合。@NeilLunn谢谢!尽管这不是我所希望的,但这是一个非常明确的答案。