Как в mongodb удалить последние несколько записей?

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

от loyal , в категории: SQL , 2 года назад

Как в mongodb удалить последние несколько записей?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от delphine_bartoletti , 2 года назад

@loyal 

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

от jedidiah.brown , 10 месяцев назад

@loyal 

В MongoDB, чтобы удалить последние несколько записей, вы можете использовать метод deleteMany() с параметром sort() и limit(). Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Подключение к MongoDB
const MongoClient = require('mongodb').MongoClient;

// URL подключения и настройки
const url = 'mongodb://localhost:27017';
const dbName = 'mydatabase';

// Подключение к серверу MongoDB
MongoClient.connect(url, function(err, client) {
  if (err) throw err;

  // Выбор базы данных
  const db = client.db(dbName);

  // Определение коллекции
  const collection = db.collection('mycollection');

  // Удаление последних 5 записей
  collection.find().sort({_id: -1}).limit(5).toArray(function(err, docs) {
    if (err) throw err;

    // Удаление найденных записей
    collection.deleteMany({_id: {$in: docs.map(doc => doc._id)}}, function(err, result) {
      if (err) throw err;

      console.log('Удалено', result.deletedCount, 'документов');

      // Закрытие соединения
      client.close();
    });
  });
});


В этом примере мы подключаемся к серверу MongoDB, выбираем базу данных и определяем коллекцию. Затем мы сортируем все записи по убыванию _id и ограничиваем результат только 5 документами с помощью методов sort() и limit(). После этого мы удаляем найденные документы с помощью метода deleteMany().