我正在尝试通过以下代码访问/查询mongo中的现有集合,但即使集合中有33个文档,我也得到0计数!from mongoengine import *class TASK(DynamicDocument): passconnect("try", host="mongodb://x.x.x.x:27017/")print(task.objects().count()) 输出为 0任务是尝试数据库中的集合。有33个文档可以在蒙古指南针中看到!关于我做错了什么的任何建议?
1 回答
江户川乱折腾
TA贡献1851条经验 获得超5个赞
如注释中所述,请尝试将集合名称强制为“TASK”,如下所示:
class TASK(DynamicDocument):
meta = {'collection': 'TASK'}
否则,基础集合是“t_a_s_k”,而不是您所期望的“TASK”。事实上,这是因为通常模型是骆驼大小写的(例如绝地战士)和mongoengine snake_cases模型名称以扣除集合名称(例如jedi_warrior)。有关示例中如何在幕后命名集合的演示,请参阅下文:
from mongoengine import *
connect("try", host="mongodb://x.x.x.x:27017/")
class TASK(DynamicDocument):
pass
collection = TASK._get_collection()
print(collection.name) # 't_a_s_k'
添加回答
举报
0/150
提交
取消
