#javascript #node.js #mongodb #bson
Вопрос:
Я хочу найти объект в MongoDB, используя либо _id, либо поле «shortUri», например: urls.findOne({'$or' : [{'_id': ObjectId.(uri)}, {'shortUri': uri}]}, callback...
Однако, когда uri
это не идентификатор, я получаю следующую ошибку:
Ошибка: Переданный аргумент должен быть одной строкой из 12 байт или строкой из 24 шестнадцатеричных символов
Мне удалось решить эту проблему с помощью третичного оператора, вот так '_id': ObjectId.isValid(uri) ? ObjectId(uri) : undefined
, но я пытаюсь найти функцию, подобную синтаксическому анализу, в официальной документации для mongodb и ее пакета узлов, но я не могу ее найти:
- https://docs.mongodb.com/manual/reference/method/ObjectId/
- http://mongodb.github.io/node-mongodb-native/4.0/classes/objectid.html
Существует ли функция пробного анализа или это '_id': ObjectId.isValid(uri) ? ObjectId(uri) : undefined
единственный способ сделать это?