Проблема с использованием ObjectID в MongoDB Compass

Я учусь использовать MongoDB, я создал кластер в облаке по адресу cloud.mongodb.com и подключаюсь к нему с помощью MongoDb Compass vs 1.22.1. Я пытаюсь изучить некоторые основные команды и пытаюсь выбрать элементы из своей коллекции, используя команду find() для фильтрации по идентификатору.

Я пробовал то, на что я видел ссылки повсюду, например:

db.recipes.find({_id: ObjectID("5e877cba20a4f574c0aa56da")});

or

db.recipes.find({'_id': ObjectID("5e877cba20a4f574c0aa56da")});

И я всегда получаю вывод:

ReferenceError: ObjectID is not defined
    at evalmachine.<anonymous>:5:10
    at evalmachine.<anonymous>:7:3
    at Script.runInContext (vm.js:134:20)
    at Object.runInContext (vm.js:297:6)
    at ElectronInterpreterEnvironment.sloppyEval (C:\Users\lfili\AppData\Local\MongoDBCompass\app-1.22.1\resources\app.asar\node_modules\@mongodb-js\compass-shell\lib\index.js:140827:28)
    at Interpreter.<anonymous> (C:\Users\lfili\AppData\Local\MongoDBCompass\app-1.22.1\resources\app.asar\node_modules\@mongodb-js\compass-shell\lib\index.js:210735:41)
    at step (C:\Users\lfili\AppData\Local\MongoDBCompass\app-1.22.1\resources\app.asar\node_modules\@mongodb-js\compass-shell\lib\index.js:210685:19)
    at Object.next (C:\Users\lfili\AppData\Local\MongoDBCompass\app-1.22.1\resources\app.asar\node_modules\@mongodb-js\compass-shell\lib\index.js:210615:14)
    at C:\Users\lfili\AppData\Local\MongoDBCompass\app-1.22.1\resources\app.asar\node_modules\@mongodb-js\compass-shell\lib\index.js:210587:67
    at new Promise (<anonymous>)

Если я не использую ObjectID, например:

db.recipes.find({'_id':"5e877cba20a4f574c0aa56da"});

Я не получаю ошибки, но нет вывода, потому что я предполагаю, что _id не 5e877cba20a4f574c0aa56da, а ObjectID (5e877cba20a4f574c0aa56da).

Я не знаю, почему я не могу использовать ObjectID в Compass MongoSH, любая помощь приветствуется. Спасибо


person xfilipe    schedule 02.11.2020    source источник
comment
Это ObjectId не ObjectID.   -  person prasad_    schedule 02.11.2020
comment
Спасибо. Я попробовал, и это сработало, это странно, потому что вывод в ›_MongoSH в формате _id: ObjectID(5e877cba20a4f574c0aa56da), поэтому я просто скопировал его оттуда.   -  person xfilipe    schedule 03.11.2020


Ответы (1)


Для более новых версий вы должны использовать

db.recipes.find({_id: ObjectId("5e877cba20a4f574c0aa56da")});

Если вы используете более старую версию до 1.10.x, вы можете использовать:

db.recipes.find({"_id":{"$oid":"5e877cba20a4f574c0aa56da"}});

person Tiya Jose    schedule 02.11.2020
comment
Благодарю вас! Я использовал формат для более новой версии, проблема, как указал prasad_, заключалась в том, что я использовал ObjectID вместо ObjectId, потому что я скопировал его из вывода в консоли, и он выводится как ObjectID вместо ObjectId. - person xfilipe; 03.11.2020