Преобразовать строку в ObjectID в MongoDB - PullRequest
19 голосов
/ 19 октября 2011

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

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

Отэто:

34234234234234234234

К этому:

ObjectID("34234234234234234234")

ОБНОВЛЕНИЕ

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

Ответы [ 6 ]

22 голосов
/ 14 января 2016

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

ObjectId = require('mongodb').ObjectID;

Тогда вы можете использовать это так:

ObjectId("34234234234234234234")
17 голосов
/ 20 января 2016

Использование mongoose:

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

Использование собственного драйвера (https://stackoverflow.com/a/21076589/3377073)

var ObjectID = require('mongodb').ObjectID;
doc._id = new ObjectID(doc._id); // wrap in ObjectID
6 голосов
/ 19 октября 2011

http://api.mongodb.org/java/2.6.5/org/bson/types/ObjectId.html

Здесь вы можете видеть, что существует конструктор ObjectId с одним параметром String. Итак, разве это не может быть полезно для вас?

4 голосов
/ 27 сентября 2016

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

var id = new Mongo.ObjectID("34234234234234234234");
0 голосов
/ 25 января 2019

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

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

0 голосов
/ 11 июля 2018

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...