python中Mongo插入数据问题
import pymongoclient = pymongo.MongoClient(host='localhost',port=27017)
student = {
'id':'20170101',
'name':'Jordan',
'age':20,
'gender':'male'
}
db = client.test
collection = db.students
result = collection.insert(student)
print(result)
代码:
result = collection.insert(student)
'Collection' object is not callable. If you meant to call the 'insert' method on a 'Collection' object it is failing because no such method exists.
报错了,是什么问题呢? 这个错误是因为在 pymongo 的版本 3.0 之后,insert 方法已经被弃用,取而代之的是 insert_one 或 insert_many 方法。所以你需要将代码中的 collection.insert(student) 修改为 collection.insert_one(student)。
修改后的代码如下:
import pymongo
client = pymongo.MongoClient(host='localhost', port=27017)
student = {
'id': '20170101',
'name': 'Jordan',
'age': 20,
'gender': 'male'
}
db = client.test
collection = db.students
result = collection.insert_one(student)
print(result)
这样就可以正常插入数据到 MongoDB 数据库中了。 本帖最后由 sfqxx 于 2023-6-27 09:43 编辑
该报错是因为pymongo 4.x版本中的insert方法已被移除,不再可用。相反,应使用`insert_one`或`insert_many`方法插入文档。
对于你的代码,在插入单个文档时,应将`collection.insert(student)`更改为`collection.insert_one(student)`:
result = collection.insert_one(student)
这是代码:
import pymongo
client = pymongo.MongoClient(host='localhost', port=27017)
student = {
'id': '20170101',
'name': 'Jordan',
'age': 20,
'gender': 'male'
}
db = client.test
collection = db.students
result = collection.insert_one(student)
print(result)
或者:import pymongo
client = pymongo.MongoClient(host='localhost',port=27017)
students = [
{'id':'20170101', 'name':'Jordan', 'age':20, 'gender':'male'},
{'id':'20170102', 'name':'Mike', 'age':21, 'gender':'male'}
]
db = client.test
collection = db.students
result = collection.insert_many(students)
print(result.inserted_ids)
这样就可以正确执行插入操作了。希望能帮到你!
给个最佳答案{:10_254:} 你的报错信息显示'Collection' object is not callable. If you meant to call the 'insert' method on a 'Collection' object it is failing because no such method exists. ,这是因为在较新的pymongo版本中, insert方法已经被弃用,取而代之的是insert_one或insert_many 。
你可以根据需要选择适合的方法。如果你只插入一条数据,可以使用insert_one方法;如果插入多条数据,可以使用insert_many方法。
你的代码可以改写为如下:
import pymongo
client = pymongo.MongoClient(host='localhost',port=27017)
student = {
'id':'20170101',
'name':'Jordan',
'age':20,
'gender':'male'
}
db = client.test
collection = db.students
result = collection.insert_one(student)
print(result.inserted_id)
这段代码的最后一行会输出插入文档的_id 。如果文档中没有提供_id ,那么insert_one()会自动为其生成一个。
如果你需要一次插入多条数据,可以这样写:
import pymongo
client = pymongo.MongoClient(host='localhost',port=27017)
students = [
{'id':'20170101', 'name':'Jordan', 'age':20, 'gender':'male'},
{'id':'20170102', 'name':'Mike', 'age':21, 'gender':'male'}
]
db = client.test
collection = db.students
result = collection.insert_many(students)
print(result.inserted_ids)
这段代码会输出所有插入文档的_id列表。 isdkz 发表于 2023-6-27 09:37
你的报错信息显示'Collection' object is not callable. If you meant to call the 'insert' method on a ...
{:10_269:} 歌者文明清理员 发表于 2023-6-27 09:36
这个错误是因为在 pymongo 的版本 3.0 之后,insert 方法已经被弃用,取而代之的是 insert_one 或 insert_m ...
<pymongo.results.InsertOneResult object at 0x000002C768D77FD0>
这条数据提示这个错误 python小小白哟 发表于 2023-6-27 09:55
这条数据提示这个错误
这个不是错误,你看他的字母:
<pymongo.results.InsertOneResult object at 0x000002C768D77FD0>
这是他返回的结果 歌者文明清理员 发表于 2023-6-27 09:56
这个不是错误,你看他的字母:
完了{:5_90:} sfqxx 发表于 2023-6-27 10:42
完了
?
页:
[1]