为每个创建mongoDB集合

时间:2018-11-09 16:12:26

标签: python mongodb pymongo

我希望基于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)

1 个答案:

答案 0 :(得分:0)

db.id就像db['id']。您要使用db[id]

也就是说,它也将失败,因为您的ID不能满足https://docs.mongodb.com/manual/reference/limits/#Restriction-on-Collection-Names

中所述的MongoDB的命名限制。

修改

更仔细地阅读后,我认为我以前关于文档的陈述是不正确的:看起来不是以字符数字开头只是一个建议,而不是一个限制。

From pymongo