2015-04-17 69 views
0

以下上傳方法應該批量上傳到給定的MongoDB集合。它成功運行,但數據不會反映在數據庫中。不確定缺少什麼? @DanielRosemanMongoDB批量上傳代碼

from pymongo import MongoClient 
from pymongo.database import Database 
from pymongo.collection import Collection 

def upload(host, port, db_str, collection_str, src_dir): 
     # prepare connection to DB 
     client = MongoClient(host, port) 
     db = Database(client, db_str) 
     collection = Collection(db, collection_str) 

     # prepare bulk object 
     bulk = collection.initialize_ordered_bulk_op() 

     # iterate overall all data files and insert 
     for datafile in datafiles(src_dir): 
      try: 
       data = json.load(open(datafile)) 
       bulk.insert(data) 
      except ValueError: 
       print "Upload failed for %s" % (datafile) 
       continue 
     bulk.execute() 
+1

你確認'json.load(open(datafile))'是否返回你期望它返回的對象嗎? – Philipp

+0

bulk.execute()返回的BulkWriteResult()對象是什麼樣的?有沒有非零的條目? – Jaco

+0

@ Philipp是的。對象很好。 – comiventor

回答

0

返回的BulkWriteResult結果顯示數據已正確上載到Mongo Db中。數據是否上傳到正確的數據庫和集合?

+0

你是對的!數據庫名稱和MongoDB中存在一個小錯字,並與該集合一起創建。 :( – comiventor