我在python中使用for循环来循环pymongo查询的结果.以下是代码:

from pymongo import MongoClient
connection = MongoClient()
db = connection.Test

myDocs = db.Docs.find( { "geolocCountry" : { "$exists" : False } } )

for b in myDrives:
    my_lat = b['TheGpsLog'][0]['latitude']
    my_long = b['TheGpsLog'][0]['longitude']

    myGeolocCountry = DoReverseGeocode(lat_start,long_start) 
    #    Here I perform a reverse geocoding, it does not matter for this example. 
    #    The important thing is: it returns a string, like 'US', 'UK', etc...

我的问题是,如何将变量myGeolocCountry插入现有文档(b)上不存在的字段geolocCountry中?

我试过了

b['geolocCountry'] = myGeolocCountry

但它根本不起作用,甚至不会产生错误.

谢谢

推荐答案

您应该执行如下更新查询:

db.Doc.update({"_id": b["_id"]}, {"$set": {"geolocCountry": myGeolocCountry}})

Mongodb相关问答推荐

geoLocation或geoNear为坐标和半径使用let变量

在提供的文档(_Id)之后和之前,是否有一个Mongo操作来获取已排序(和/或过滤)集合中的文档计数?

在不知道字段名称的情况下如何引用 MongoDB 中的字段?

Mongo查找条件:不存在

MongoDB shell:如何删除列表以外的所有集合

在 MongoDB 中加入多个集合

Spring Data + MongoDB GridFS 可以通过 Repository 访问吗?

将 MongoDB 转移到另一台服务器?

将 MongoDB BsonDocument 转换为字符串

MongoDB:插入重复键更新

更新 MongoDB 中嵌套实体数组中的属性

oplog 在独立 mongod 上启用,不适用于副本集

mongodump 是否锁定数据库?

如何在 MongoDB 中进行内部连接?

Mongoose 连接认证失败

Mongodb KeyFile 太开放权限

如何使用服务器实例指定 mongodb 用户名和密码?

RoboMongo:不显示所有文档

无法将 Mongoose 连接到 Atlas

无法连接到远程服务器上的 mongo