我有一个与pymongo一起使用的mondgodb,条目如下:
{ "_id" : ObjectId( "52065432c36b44162f56f4a7" ),
"user_id" : "22614761",
"longitude" : 25.394902576,
"created_time" : "1376144888",
"latitude" : 36.476277607,
"id" : "519463433050680017_22614761" }
我想查找具有相似user_id
的所有数据,并将其id
存储在新数据库中。例如。一个新创建的条目:
{"target":"519463433050680017_22614761", "source" : "518989990404955532_361611158"}
我尝试了以下代码,但外部循环卡在第一个值上。
a = db.col.find()
b = db.col.find()
for i in a:
for q in b:
if i['_id'] <> q['_id'] and i['user_id'] == q['user_id']:
edges.insert({'source':i['user_id'],'target': q['user_id']})
答案 0 :(得分:1)
.find()返回一个迭代器,a = b - 假设实际上应该是b = a - 只是将它设置在一个不同的名称下,两个循环都是从相同的内存中对象中消耗的。
执行a = db.col.find()和b = db.col.find()以获取独立的迭代器。
答案 1 :(得分:0)
好吧我能用以下代码解决它。 a
和b
是pymongo游标,由于某种原因(我很乐意听到有人知道)不像字典那样。
a = db.col.find()
bjects = []
for object in a:
objects.append(object)
for i in objects:
for q in objects:
if i['_id'] <> q['_id'] and i['user_id'] == q['user_id']:
edges.insert({'source':i['id'],'target': q['id']})