【问题标题】:MongoDB bulk upload codeMongoDB批量上传代码
【发布时间】:2015-06-24 11:22:55
【问题描述】:

以下上传方法应该批量上传到给定的 MongoDB 集合。它无一例外地成功运行,但数据没有反映在数据库中。不确定缺少什么? @丹尼尔罗斯曼

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() 

【问题讨论】:

  • 你确认json.load(open(datafile))返回你期望它返回的对象了吗?
  • bulk.execute() 返回的 BulkWriteResult() 对象是什么样的?是否有任何非零条目?
  • @Philipp 是的。对象很好。
  • @JacodeGroot nInserted 等于我插入的文档。以下是结果 { 'nModified':0, 'nUpserted':0, 'nMatched':0, 'writeErrors':[ ], 'upserted':[ ], 'writeConcernErrors':[ ], 'nRemoved':0, 'nInserted':100 }
  • dataa 上传到正确的数据库了吗?除非我遗漏了什么,否则这应该可以工作。

标签: mongodb python-2.7 pymongo bulkinsert


【解决方案1】:

返回的 BulkWriteResult 结果表明数据已正确上传到 Mongo Db。数据是否上传到正确的数据库和集合中?

【讨论】:

  • 你是对的!数据库名称中有一个小错字,MongoDB 将其与集合一起创建。 :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多