以int作为_id检索mongodb文档>> [

问题描述 投票:0回答:1
我将一些维基百科文档导入了int类型为“ _id”字段(它们是维基百科页面的页面ID)的mongodb:

> db.wiki_page_id.find() { "_id" : 10, "page_title" : "AccessibleComputing" } { "_id" : 12, "page_title" : "Anarchism" }

我正在将Mongo引擎与Django一起使用,并且在检索导入的文档时遇到了麻烦。当我使用以下代码时:

page_id_doc = WikiPageId.objects(id=10)[0]

它报告此错误:

u'10'不是有效的ObjectId,它必须是类型为'str'的12字节输入或24个字符的十六进制字符串

当我以这种方式使用bson.objectid.ObjectId类时:

page_id_doc = WikiPageId.objects(id=ObjectId(10))[0]

它报告以下错误:

id必须是(str,unicode,ObjectId)的实例,不是

有什么办法解决这个问题?

谢谢!

我将一些维基百科文档导入了int类型为“ _id”字段(它们是维基百科页面的pageid)的mongodb中:> db.wiki_page_id.find(){“ _id”:10,“ page_title”:“ AccessibleComputing”} { ...

django mongodb mongoengine objectid
1个回答
1
投票
使用MongoEngine,您可以在文档的primary_key中使用keyword arguments将字段定义为“主键”(“ _id”字段:
© www.soinside.com 2019 - 2024. All rights reserved.