我有一些服务器使用Python向我的MongoDB插入数据,因为我想从旧的-->;新的我想通过增加ID中的数字来获得反馈
我在python代码中使用Mongoengine进行插入,但没有找到任何关于使用MongoDB Javascript函数的信息,比如mongo在这里提供了自动递增序列函数:https://www.tutorialspoint.com/mongodb/mongodb_autoincrement_sequence.htm
我尝试这样使用类:
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)
但并没有错误,此后也并没有向数据库中插入任何内容。 我使用Mongo端增量,因为不止一个服务器使用它
在mongoengine中不支持运行mongodb javascript代码(除了已弃用且不适合您的用例的exec_js)
话虽如此,mongoengine提供了SequenceField可以为您的案例提供技巧。它的工作原理相同,将计数器存储在单独的集合中
例如:
相关问题 更多 >
编程相关推荐