再添加一种情况下,insert_many无法正常工作

时间:2019-05-12 23:36:15

标签: mongodb collections vagrant

我使用以下代码将tab0011.json插入portal_db.acs中:

from pymongo import MongoClient
import json

client = MongoClient()
db = client.portal_db

db.acs.drop()
acs = db.acs

data_acs = json.load(open('/vagrant/data/tab0011.json', 'r'))

result_acs = acs.insert_many(data_acs)

代码已正确存储了tab0011.json数据。但是,我尝试使用以下代码将tab0011.json插入portal_db.acs并将tab0007.json插入portal_db.tab0007。这两个集合均已创建,但内部都没有,即为空:

from pymongo import MongoClient
import json

client = MongoClient()
db = client.portal_db

db.acs.drop()
acs = db.acs

db.tab0007.drop()
tab0007 = db.tab0007

data_acs = json.load(open('/vagrant/data/tab0011.json', 'r'))
data_tab0007 = json.load(open('/vagrant/data/tab0007.json', 'r'))

result_acs = acs.insert_many(data_acs)
result_tab0007 = tab0007.insert_many(data_tab0007)

不太清楚为什么。

1 个答案:

答案 0 :(得分:1)

如果文件扩展名是.json,我可以通过代码中使用的方法读取数据,并将其插入同一数据库的集合中。我可以看到我在两个集合中使用的数据

也许您可以尝试通过这种方式进行操作:

from pymongo import MongoClient
import json

client = MongoClient(host="localhost", port=27017)
db = client["portal_db"]

acs = db.get_collection("acs")

tab0007 = db.get_collection("tab0007")

db.drop_collection("acs")
db.drop_collection("tab0007")

data_acs = json.load(open('/vagrant/data/tab0011.json', 'r'))
data_tab0007 = json.load(open('/vagrant/data/tab0007.json', 'r'))

acs_inserts = acs.insert_many(data_acs)
tab_inserts = tab0007.insert_many(data_tab0007)

print(acs_insert.inserted_ids)
print(tab_inserts.inserted_ids)

最后两行将打印所插入文档的ObjectId。