我希望基于ID在MongoDB中创建一个集合。每个ID都应拥有自己的集合。我尝试将id添加到collection = db.id中,以创建一个新集合(如果尚不存在),但是它不起作用。这只会创建一个名为id的集合。
import pymongo as pm
list = [{'id':'1', 'fruit':'apple', 'drink':'juice'},
{'id':'2', 'fruit':'pear', 'drink':'coffee'},
{'id':'2', 'fruit':'banana', 'drink':'milk'},
{'id':'2', 'fruit':'banana', 'drink':'fanta'},
{'id':'3', 'fruit':'mango', 'drink':'tea'},
{'id':'1', 'fruit':'kiwi', 'drink':'cola'}]
for item in list:
id = item['id']
client = pm.MongoClient("X")
db = client.fruit_n_drink
collection = db.id
x = collection.insert_one(w)
答案 0 :(得分:0)
db.id
就像db['id']
。您要使用db[id]
。
也就是说,它也将失败,因为您的ID不能满足https://docs.mongodb.com/manual/reference/limits/#Restriction-on-Collection-Names
中所述的MongoDB的命名限制。修改
更仔细地阅读后,我认为我以前关于文档的陈述是不正确的:看起来不是以字符数字开头只是一个建议,而不是一个限制。