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谢谢!尽管这不是我所希望的,但这是一个非常明确的答案。