2015-04-17 70 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