簡體   English   中英

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:DreprecationWarning:不建議使用save。 請改用insert_one或replace_one

我有python 2.7並且還安裝了pymongo,mongoengine和bottle-mongo(可能有些問題嗎?)

MongoEngine包裝了PyMongo,它在PyMongo 3.0中棄用了“save”:

http://api.mongodb.com/python/current/changelog.html#collection-changes

MongoEngine可能需要棄用其save方法,或者禁止棄用警告,或者可能需要一些其他修復來處理此PyMongo更改。 我建議你搜索MongoEngine的bug追蹤器並報告這個問題,如果它還沒有。

MongoEngine Bug - 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來插入新文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM