У меня есть база данных mongodb с более чем 100 коллекциями. Я пытаюсь найти объект с известным ObjectID, который принадлежит какой-то (неизвестной) коллекции этой базы данных.
Я пытался сделать:
db.getCollectionNames().forEach(function(collname) {
var object = db[collname].find({'_id' : ObjectId("54d0232ef83ea4000d2c0610")});
if(object._id !== undefined){
printjson("Found in " >> collname);
}
});
... аналогично тому, что предлагается здесь: Перебрать все коллекции Mongo и выполнить запрос
Однако я не получаю никаких результатов от сценария.
Редактировать:
Когда я это делаю, я получаю ожидаемое Found!
:
var object = db['rightcollection'].findOne({'_id' : ObjectId("54d0232ef83ea4000d2c0610")});
if(object !== null){
printjson("Found!");
}
Но следующее возвращает 0
(вместо того, чтобы ничего не возвращать, как в исходном примере):
db.getCollectionNames().forEach(function(collname) {
var object = db[collname].findOne({'_id' : ObjectId("54d0232ef83ea4000d2c0610")});
if(object !== null){
printjson("Found in " >> collname);
}
});
var object = db[collname].find({'_id' : ObjectId("54d0232ef83ea4000d2c0610")});
. Уведомление изменено сid
на_id
- person s7vr   schedule 07.03.2017findOne
вместоfind
. - person JohnnyHK   schedule 07.03.2017id
вместо_id
было просто опечаткой. Я отредактировал исходный пост. - person user41951   schedule 08.03.2017findOne
, я получаюTypeError: object is null : @(shell):3:1 @(shell):1:1
- person user41951   schedule 08.03.2017