我发现这个问题是针对C#和Perl的,但不是在本机界面中.我认为这会奏效:
db.theColl.find( { _id: ObjectId("4ecbe7f9e8c1c9092c000027") } )
查询未返回任何结果.我通过做db.theColl.find()和抓取ObjectId 找到了4ecbe7f9e8c1c9092c000027 .该集合中有数千个对象.
我已经阅读了我在mongodb.org网站上找到的所有页面,但没有找到它.这只是一件奇怪的事吗?这对我来说似乎很正常.
例如...
user/view/?id=324gijsdfi3h25o1
Run Code Online (Sandbox Code Playgroud)
我可以str()......但......
我怎么能用find弦?
编辑:我希望Mongo中的每个文档都有一个我可以查看的唯一标识符(通常是一个字符串).我希望对象ID可以是这样的(因为它有很多字母而且它是唯一的.)而且我希望它能与HTTP GET一起使用.查看?UID = e93jfsb0e3jflskdjf
我试图通过它的MongoID"_id"字段在mongoDB中找到一条记录.我找到了如何做到的例子,但无法让它发挥作用.例:
$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);
Run Code Online (Sandbox Code Playgroud)
它输出:
MongoCursor (
)
Run Code Online (Sandbox Code Playgroud)
里面没什么.
我已经通过将上面的"_id"更改为不同的字段(例如"firstName")并传入第一个名称来验证其他所有工作,然后我返回有效数据.
为什么这不起作用?
我甚至尝试用$ recID作为字符串进行搜索,没有区别.
这是从mongo shell发生的事情(虽然我不确定我是否正确查询):
>
> 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" : "", …Run Code Online (Sandbox Code Playgroud)