mongoengine 保存方法已弃用?
mongoengine save method is deprecated?
我想知道为什么我的 python 说 mongoengine save() 方法已弃用?我没有在官方文档中看到任何关于此的信息 https://mongoengine.readthedocs.io/en/v0.9.0/apireference.html
class MyModel(Document):
user_id = StringField(required=True)
date = DateTimeField(required=True, default=datetime.datetime.now)
my = MyModel()
my.user_id = 'user'
my.save()
现在我看到了:
/Library/Python/2.7/site-packages/mongoengine/document.py:340:
DeprecationWarning: save is deprecated. Use insert_one or replace_one
instead
我已经 python 2.7 并且还安装了 pymongo、mongoengine 和 bottle-mongo(可能有一些问题?)
MongoEngine 包装了 PyMongo,它在 PyMongo 3.0 中弃用了 "save":
http://api.mongodb.com/python/current/changelog.html#collection-changes
MongoEngine 可能需要弃用其保存方法,或抑制弃用警告,或者可能需要一些其他修复来处理此 PyMongo 更改。我建议您搜索 MongoEngine 的错误跟踪器并报告此问题(如果尚未报告)。
MongoEngine 错误 - https://github.com/MongoEngine/mongoengine/issues/1491
改用col.replace_one({‘_id': doc['_id']}, doc, True)
。
api 是 replace_one(filter, replacement, upsert=False, bypass_document_validation=False, collation=None, session=None)
。
如果 filter
什么也没找到,则使用 upsert = True
插入新文档。
我想知道为什么我的 python 说 mongoengine save() 方法已弃用?我没有在官方文档中看到任何关于此的信息 https://mongoengine.readthedocs.io/en/v0.9.0/apireference.html
class MyModel(Document):
user_id = StringField(required=True)
date = DateTimeField(required=True, default=datetime.datetime.now)
my = MyModel()
my.user_id = 'user'
my.save()
现在我看到了:
/Library/Python/2.7/site-packages/mongoengine/document.py:340: DeprecationWarning: save is deprecated. Use insert_one or replace_one instead
我已经 python 2.7 并且还安装了 pymongo、mongoengine 和 bottle-mongo(可能有一些问题?)
MongoEngine 包装了 PyMongo,它在 PyMongo 3.0 中弃用了 "save":
http://api.mongodb.com/python/current/changelog.html#collection-changes
MongoEngine 可能需要弃用其保存方法,或抑制弃用警告,或者可能需要一些其他修复来处理此 PyMongo 更改。我建议您搜索 MongoEngine 的错误跟踪器并报告此问题(如果尚未报告)。
MongoEngine 错误 - https://github.com/MongoEngine/mongoengine/issues/1491
改用col.replace_one({‘_id': doc['_id']}, doc, True)
。
api 是 replace_one(filter, replacement, upsert=False, bypass_document_validation=False, collation=None, session=None)
。
如果 filter
什么也没找到,则使用 upsert = True
插入新文档。