2015-07-10 23 views
2
import pymongo 
import sys 

client=pymongo.MongoClient('localhost',27017) 
db=client.rop 

try:   
    cntcur=db.albums.aggregate([{"$unwind":"$images"},"$group":"_id":"null","count":{'$sum':1}}}]) 
    cursor1=db.images.find()  

    for im in cursor1:   
     id1=int(im['_id']) 
     cnt=0   
     cursor= db.albums.aggregate([{"$unwind":"$images"}]) 
     print id1   
     for image in cursor: 
      print "moving to images collection"    
      ig=image['images'] 
      if (id1 == ig): 
       break; 
      else: 
       cnt=cnt+1    
       if (cnt == cntr): 
        print "removing" 
        db.images.remove({'_id':id1}) 



except Exception as e: 
    print "unexpected error", type(e),e 

我在行ig=image['images']中收到错误。我试图将其更改为ig=int(image['images']),但我得到同样的错误。字符串索引必须是python代码中的一个整数位置

+2

游标是否返回'dict'对象的列表?尝试“打印图像”和“打印类型(图像)”。 – ZdaR

+0

打印图像我得到“确定”和打印类型(图像)我得到 Svati

+0

@ ZdaR是在pymongo它返回一个字典与Unicode密钥和价值 – The6thSense

回答

1
import pymongo 
import sys  
client = pymongo.MongoClient('localhost',27017) 
db=client.rop  
try:   
    cursor1=db.images.find() 
    for im in cursor: 
     id1=int(im['_id']) 
     print id1 
     cnt=0 
     cursor=db.albums.find() 
     for image in cursor: 
      ig=image['images'] 
      for data in ig: 
       if (id1 == data): 
        cnt=1 
        break; 
     if cnt==0: 
      print "removing" 
      db.images.remove({'_id':id1}) 
except Exception as e: 
    print "unexpected error",type(e) , e 
相关问题