Удалить только один документ в MongoDB - PullRequest
4 голосов
/ 25 октября 2011

когда я звоню

db.collection.remove({'condition':'some condition'});

Эта строка удалит все соответствующие документы условий.

Что если я хочу удалить только одно из любого или n-го условия соответствия?

Ответы [ 6 ]

13 голосов
/ 25 октября 2011

Для этого нужно выполнить два отдельных запроса

  • взять только один предмет из подходящих фильтров

    var item = db.collection.findOne({'condition':'some condition'})
    
  • и удалите элемент, используя идентификатор

     db.collection.remove({_id: item._id});
    
10 голосов
/ 07 июня 2013

db.collection.remove теперь имеет флаг justOne

http://docs.mongodb.org/manual/reference/method/db.collection.remove/#db.collection.remove

2 голосов
/ 09 октября 2017

Чтобы удалить один документ из коллекции, используйте команду ниже

db.collectionname.remove ({"_ id": ObjectId ("5473293d43ecdre56352457f3a")})

1 голос
/ 20 августа 2016

Согласно справке MongoDB db.collection.remove () :

justOne

Необязательное логическое значение.Чтобы ограничить удаление только одним документом, установите true.Не используйте значение по умолчанию false и удалите все документы, соответствующие критериям удаления.

Для этого можно установить justOne на true.

До MongoDB версии 2.6:

db.collection.remove(
   <query>,
   <justOne>
)

MongoDB версии 2.6 или новее :

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

Как это: db.collection.remove({"condition": "some condition"}, {justOne: true});.

0 голосов
/ 27 ноября 2015

Если существует несколько записей, и вы хотите удалить только первую запись, то установите параметр justOne в методе remove ().

Здесь вы хотите удалить только 1. Таким образом, установите параметр "justOne" как1.

db.collection.remove ({'условие': 'некоторое условие'}, 1);

0 голосов
/ 25 октября 2011

Разве вы не можете просто запустить поиск сначала, чтобы получить идентификатор, а затем удалить, когда у вас есть тот, который вы хотите?

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