首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在mongodb中找不到_id的记录?

为什么在mongodb中找不到_id的记录?
EN

Stack Overflow用户
提问于 2011-07-29 08:33:08
回答 2查看 13.1K关注 0票数 10

我正在尝试通过它的MongoID "_id“字段在mongoDB中查找记录。我已经找到了如何做到这一点的例子,但无法让它工作。示例:

代码语言:javascript
复制
$recID = "010101010101011";  //would be a valid mongodb _id
$recID = new MongoId((string)$recID);  // I have tried it without the (string) cast too
$cursor = $this->Collection->findOne(array('_id' => $recID));
print_r($cursor);

它输出:

代码语言:javascript
复制
MongoCursor (
)

里面什么都没有。

我已经通过将上面的"_id“更改为一个不同的字段(如"firstName”)并传入名字来验证其他一切都在工作,然后我得到了有效的数据。

为什么这不起作用?

我甚至尝试过将$recID作为字符串进行搜索,没有区别。

下面是mongo shell中发生的事情(尽管我不确定我的查询是否正确):

代码语言:javascript
复制
>
> db.Employee.find({login:"myperson"})
{ "_explicitType" : "project.Employee", "_id" : ObjectId("4e209564203d83940f0000
06"), "active" : true, "addedDate" : "07/15/2011 15:29:21", "domain" : "xxx",
 "id" : ObjectId("4e209564203d83940f000006"), "lastLogin" : "07/20/2011 19:13:36
", "login" : "myperson", "name" : "My Person", "pw" : "", "ulevel" : 9999
}
> db.Employee.find({id:"4e209564203d83940f000006"})
> db.Employee.find({_id:"4e209564203d83940f000006"})
>

请注意,id或_id没有返回任何内容。

EN

Stack Overflow用户

发布于 2014-05-07 03:35:15

你可以用ObjectID包装器包装你的id。这告诉mongo db您正在寻找特定的列,即_id列。

代码语言:javascript
复制
var ObjectID=require('mongodb').ObjectID;

那就这么做

代码语言:javascript
复制
collection.findOne({_id: ObjectID(id)},function(err,user){  //blah blah}
票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6867388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档