Как найти документ по его идентификатору (ID) в MongoDB?

Пользователь

от kieran.bradtke , в категории: Компьютерные технологии , 10 месяцев назад

Как найти документ по его идентификатору (ID) в MongoDB?

Facebook Vk Ok Twitter Telegram Whatsapp

1 ответ

Пользователь

от brook.gottlieb , 10 месяцев назад

@kieran.bradtke 

Чтобы найти документ по его идентификатору (ID) в MongoDB, необходимо использовать метод find с аргументом { _id: ObjectId("ID") }. Здесь "ID" - это строка, содержащая значение идентификатора документа.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// Предположим, что идентификатор документа, который мы ищем, равен "60ef2d8b0b783b8d618ef8fc"

const MongoClient = require('mongodb').MongoClient;
const ObjectId = require('mongodb').ObjectId;

const uri = "mongodb+srv://<username>:<password>@<cluster>/<database>?retryWrites=true&w=majority";

const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(err => {
  const collection = client.db("mydb").collection("mycollection");
  
  // Ищем документ по его идентификатору
  const id = ObjectId("60ef2d8b0b783b8d618ef8fc");
  const query = { _id: id };
  collection.find(query).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    client.close();
  });
});


Здесь мы используем метод ObjectId для приведения строки-идентификатора к объекту ObjectId. Затем мы создаем запрос с условием поиска по _id и передаем его в метод find. В результате мы получим массив объектов, содержащих информацию о документе с заданным идентификатором. Если документ не найден, результат будет пустым массивом.