mongoDB의 레코드를 MongoID "_id"필드로 찾으려고합니다. 나는 그것을하는 방법에 대한 예제를 발견했지만 그것을 작동시키지 못합니다. 예 :mongodb에서 _id로 레코드를 찾을 수없는 이유는 무엇입니까?
$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);
그것은 출력 없음 내부
MongoCursor (
)
것도.
위의 "_id"를 "firstName"과 같은 다른 필드로 변경하고 이름을 전달하면 유효한 데이터가 반환된다는 것을 확인했습니다.
왜 작동하지 않습니까?
$ recID를 문자열로 사용해도 차이는 없습니다.
여기에 (내가 제대로 조회하고 만약 내가 확실하지 오전하지만)이 몽고 쉘에서 발생하는 것입니다 :
>
> 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 반환하지 않습니다.
당신은 MongoDB를 대화 형 쉘을 사용하여 찾을 수 다음합니까? – KaKa