喵喵時(shí)光機(jī)
2022-05-24 17:10:52
我有一些服務(wù)器使用 Python 將數(shù)據(jù)插入到我的 MongoDB,因?yàn)槲蚁霃呐f的 --> 新的讀取它我想通過(guò)增加 ID 中的數(shù)量來(lái)獲得反饋。我在我的 python 代碼中使用 Mongoengine 來(lái)插入,但沒(méi)有找到任何關(guān)于使用 MongoDB Javascript 函數(shù)的信息,例如 mongo 在這里提供自動(dòng)增量序列函數(shù):https://www.tutorialspoint.com/mongodb/mongodb_autoincrement_sequence。 htm我嘗試使用這樣的類(lèi):class LogTemplate(mongoengine.Document): _id = mongoengine.IntField(required=True) logid = mongoengine.IntField(required=True) time = mongoengine.DateTimeField(required=True) type = mongoengine.IntField(required=True)然后在保存之前:def pushToMongo(evtmgr) -> LogTemplate: loghand = LogTemplate() loghand._id = loghand.getNextSequenceValue('collection name') loghand.logid = evtmgr.id loghand.type = evtmgr.type loghand.time = datetime.fromtimestamp(evtmgr.time.seconds)但沒(méi)有錯(cuò)誤,之后沒(méi)有任何內(nèi)容插入數(shù)據(jù)庫(kù)。我正在使用 Mongo 端增量,因?yàn)椴恢挂粋€(gè)服務(wù)器使用它。
1 回答

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
不支持在 mongoengine 中運(yùn)行 mongodb javascript 代碼(除了已棄用且不適合您的用例的 exec_js 之外)。
話(huà)雖如此,mongoengine 提供了可以為您的案例解決問(wèn)題的SequenceField 。它的工作原理相同,將計(jì)數(shù)器存儲(chǔ)在單獨(dú)的集合中
例如:
class Person(Document):
id = SequenceField(primary_key=True)
name = StringField()
Person(name='John').save() # saves {'_id': 1, 'name': 'John'}
Person(name='Bob').save() # saves {'_id': 2, 'name': 'Bob'}
添加回答
舉報(bào)
0/150
提交
取消