Преобразование строки в ObjectID в MongoDB

Я разрабатываю API с помощью Codeigniter и MongoDB. В некоторых частях базы данных я сохранил идентификатор изображения в формате ObjectID вместо строки. Теперь я получил идентификатор в строчном формате, и мне нужно запросить базу данных, используя его.

Как я могу "преобразовать" строку в ObjectID, чтобы я мог выполнить запрос?

Из этого:

34234234234234234234

Для этого:

ObjectID("34234234234234234234")

UPDATE

Я нашел решение. Просто сделайте это new MongoId('34234234234234234234');

Ответ 2

Вам просто нужно потребовать функцию ObjectId из вашего монго.

ObjectId = require('mongodb').ObjectID;

Затем вы можете использовать его следующим образом:

ObjectId("34234234234234234234")

Ответ 3

Использование мангуста:

var mongoose = require('mongoose');
var objectId = mongoose.Types.ObjectId('569ed8269353e9f4c51617aa');

Использование собственного драйвера (fooobar.com/questions/475532/...)

var ObjectID = require('mongodb').ObjectID;
doc._id = new ObjectID(doc._id); // wrap in ObjectID

Ответ 4

Если вы используете Meteor

var id = new Mongo.ObjectID("34234234234234234234");

Ответ 5

или лучше использовать

var mongodb = require(‘mongodb); //this might have been defined at the beginning of your code.
//now use it
query = {_id:mongodb.ObjectId('569ed8269353e9f4c51617aa')};

а в остальном то же самое.

Ответ 6

Теперь вы можете конвертировать строку в objectId на mongodb 4.0 и выше. появилась новая функция для преобразования из идентификатора строки в идентификатор объекта

здесь вы можете увидеть документацию $ toObjectId