2015-07-10 78 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 
相關問題