Pymongo 是否可以插入一个 insert_many?

Pymongo is it possible to insert one with insert_many?

这听起来像是一个愚蠢的问题,但我正在使用 pymongo 并编写了以下函数来插入文档,并且想知道 insert_many 方法是否也适用于一条记录插入,那样我就不会'如果我只是插入一条记录,则不需要其他功能。

这是我的功能:

def insert_records(list_of_documents: list, collection):
    i = collection.insert_many(list_of_documents)
    print(len(i.inserted_ids), " documents inserted!")

当我插入一个时它抛出一个错误:

post1 = {"_id":0, "user_name":"Jack"}
insert_records(list(post1), Whosebug)

TypeError: document must be an instance of dict, bson.son.SON, bson.raw_bson.RawBSONDocument, 或者继承自 collections.MutableMapping[= 的类型13=]

我知道我可以使用 insert_one() 来达到这个目的,我只是想知道是否可以用 insert_many() 做所有事情,因为原来的 insert() 方法已被弃用.谢谢!

当你使用 list(post1) 时,你的 post1 是一个字典,你有一个键列表:

>>> list(post1)
['_id', 'user_name']

改用:

>>> [post1]
[{'_id': 0, 'user_name': 'Jack'}]

所以:

insert_records([post1], Whosebug)