Ответ 1
http://api.mongodb.org/java/2.6.5/org/bson/types/ObjectId.html
Здесь вы можете увидеть, что существует конструктор ObjectId с одним параметром String. Значит, он не может быть вам полезен?
Я разрабатываю API с помощью Codeigniter и MongoDB. В некоторых частях базы данных я сохранил идентификатор изображения в формате ObjectID вместо строки. Теперь я получил идентификатор в строчном формате, и мне нужно запросить базу данных, используя его.
Как я могу "преобразовать" строку в ObjectID, чтобы я мог выполнить запрос?
Из этого:
34234234234234234234
Для этого:
ObjectID("34234234234234234234")
UPDATE
Я нашел решение. Просто сделайте это new MongoId('34234234234234234234');
http://api.mongodb.org/java/2.6.5/org/bson/types/ObjectId.html
Здесь вы можете увидеть, что существует конструктор ObjectId с одним параметром String. Значит, он не может быть вам полезен?
Вам просто нужно потребовать функцию ObjectId из вашего монго.
ObjectId = require('mongodb').ObjectID;
Затем вы можете использовать его следующим образом:
ObjectId("34234234234234234234")
Использование мангуста:
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
Если вы используете Meteor
var id = new Mongo.ObjectID("34234234234234234234");
или лучше использовать
var mongodb = require(‘mongodb); //this might have been defined at the beginning of your code.
//now use it
query = {_id:mongodb.ObjectId('569ed8269353e9f4c51617aa')};
а в остальном то же самое.
Теперь вы можете конвертировать строку в objectId на mongodb 4.0 и выше. появилась новая функция для преобразования из идентификатора строки в идентификатор объекта
здесь вы можете увидеть документацию $ toObjectId