Если идентификатор не указан при сохранении записи, тогда да, вам нужно будет использовать объект MongoID для построения правильных критериев поиска. Однако вы можете определить, что _id - это то, что вы хотите - простое целое число, текст, метка времени и т. Д., - которое вы можете использовать для поиска, как и в любом другом свойстве.
См. Следующий вывод CLI в качестве примера - первый объект имеет _id, который содержит тип ObjectId, но второй содержит простую строку. Поиск по строке работает как обычно:
> db.test.save({ name: "Test Object 1"});
> db.test.save({ _id: "abc123", "name" : "Test Object 2" });
> db.test.find();
{ "_id" : ObjectId("4cca41c9d86d000000006d33"), "name" : "Test Object 1" }
{ "_id" : "abc123", "name" : "Test Object 2">
db.test.find({"_id" : "abc123"});
{ "_id" : "abc123", "name" : "Test Object 2" } }