我正在尝试在我的mongo集合的文档中插入Google搜索的结果(使用Google自定义搜索API)。搜索是对每个文档的'title'
字段的值执行的。
我昨天进行了测试,但似乎我错误配置了我的API帐户,因为我仍然限制在每天100次查询。结果,我有~100个文档'google_search'
字段包含正确的API结果。所有其他文档都有'google_search'
字段,其中包含以下dict
:
{u'error': {u'code': 403,
u'errors': [{u'domain': u'usageLimits',
u'message': u'Daily Limit Exceeded',
u'reason': u'dailyLimitExceeded'}],
u'message': u'Daily Limit Exceeded'}}
我希望在每个文档上使用不存在的google_search
字段或包含google_search.error
字典
我可以这样做:
for item in coll.find({'$or': [{'google_search': None},
{'google_search.error.code': {'$ne': None}}]):
coll.update({'_id': item['_id']}, {'$set': {'google_search': g_search(item['title'])}})
但是我想知道它有任何方法可以使用单个`coll.update(..., multi=True)
mongo调用来执行相同的操作,而不是for循环和几个原子更新调用。
我觉得单个方法调用会比一个冗长的for循环更快,尽管我不确定我是对的。
非常感谢!
答案 0 :(得分:0)