如何确定某个字段是否存在?

时间:2013-07-15 20:58:23

标签: python mongodb cursor pymongo

我正在使用mongodb

连接到我的pymongo
client = MongoClient()
mongo = MongoClient('localhost', 27017)
mongo_db = mongo['test']
mongo_coll = mongo_db['test']   #Tweets database

我有一个光标并且循环遍历每条记录:

cursor = mongo_coll.find() 
for record in cursor:    #for all the tweets in the database
    try:
      msgurl = record["entities"]["urls"]    #look for URLs in the tweets
    except:
      continue

try/except的原因是因为如果["entities"]["urls"]不存在,则会出错。

如何判断[“entity”] [“urls”]是否存在?

2 个答案:

答案 0 :(得分:8)

记录是一个字典,其中键“实体”链接到另一个字典,所以只需检查“urls”是否在该字典中。

if "urls" in record["entities"]:

如果你只想继续,你也可以使用get。

msgurl = record["entities"].get("urls")

如果没有这样的密钥,这将导致msgurl等于None。

答案 1 :(得分:8)

我不熟悉pymongo,但为什么不更改查询以便它只返回包含'urls'的结果?类似的东西:

mongo_coll.find({"entities.urls": {$exists:1}}) 

http://docs.mongodb.org/manual/reference/operator/exists/