Tôi đang cố tìm bản ghi trong mongoDB bởi trường MongoID "_id" của nó. Tôi đã tìm thấy các ví dụ về cách làm điều đó, nhưng không thể làm cho nó hoạt động. Ví dụ:Tại sao tôi không thể tìm thấy hồ sơ bằng _id trong 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);
Nó ra:
MongoCursor (
)
Không có gì bên trong.
Tôi đã xác minh mọi thứ khác đang hoạt động bằng cách thay đổi "_id" ở trên thành một trường khác như "firstName" và chuyển tên và tôi lấy lại dữ liệu hợp lệ.
Tại sao tính năng này không hoạt động?
Tôi thậm chí đã thử tìm kiếm bằng $ recID dưới dạng chuỗi, không có sự khác biệt.
Đây là những gì xảy ra từ vỏ Mongo (mặc dù tôi không chắc chắn nếu tôi truy vấn đúng cách):
>
> 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"})
>
Thông báo không có gì trở cho id hoặc _id.
Bạn có thể tìm thấy nó bằng cách sử vỏ tương tác MongoDB? – KaKa