Как в консоли MongoDB удалить запись по id? Вот моя коллекция:
[
{
"_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },
"name" : "Gazza"
},
{
"_id" : { "$oid" : "4d513345cc9374271b02ec6c" },
"name" : "Dave",
"adminOf" : { },
"email" : "email@email.com"
}
]
И вот те команды, которые я пробовал, не работают:
db.test_users.remove( {"_id":{"$oid":new ObjectId("4d512b45cc9374271b02ec4f")}});
db.test_users.remove( {"_id":{"$oid":"4d513345cc9374271b02ec6c"}});
db.test_users.remove( {"_id":"4d512b45cc9374271b02ec4f"});
db.test_users.remove( {"_id":new ObjectId("4d512b45cc9374271b02ec4f")});
Удаление по имени работает:
db.test_users.remove( {"name":"Gazza"});
Это находится в оболочке браузера на mongodb.org, если это имеет значение.
Спасибо
Ответы:
Очень близко. Это будет работать:
т.е. вам не нужен новый для ObjectId.
Кроме того , обратите внимание , что в некоторых водителей / инструментов,
remove()
теперь осуждается иdeleteOne
илиdeleteMany
вместо них следует использовать.источник
_id
поле не генерируется автоматически (т.е. не ObjectId, а String), Вы можете просто записать значение из_id
под кавычки:db.your.database.remove({"_id": "your value"})
.Ответ заключается в том, что веб-консоль / оболочка на mongodb.org ведет себя иначе, а не так, как я ожидал. Установленная дома версия работала без проблем, т.е. автоматически сгенерированный _id в веб-оболочке был сохранен следующим образом:
Та же самая домашняя настройка документа и автоматически сгенерированный _id были сохранены следующим образом:
Запросы против последнего работали без проблем.
источник
Ну, _id - это объект в вашем примере, поэтому вам просто нужно передать объект
Это должно работать
Изменить: добавлен конечный парен, чтобы убедиться, что он скомпилирован.
источник
Если вы хотите удалить по списку идентификаторов, это отлично работает.
источник
У вас есть несколько узлов mongodb в наборе реплик?
Я обнаружил (я использую оболочку Robomongo gui mongo, думаю, то же самое применимо и в других случаях), что правильный синтаксис удаления, т.е.
... не работает, если вы не подключены к основному узлу набора реплик.
источник
Я только что столкнулся с этим, и этот вариант сработал для меня:
источник
сначала получите функцию ObjectID из объекта mongodb ObjectId = require (mongodb) .ObjectID;
тогда вы можете вызвать _id с функцией удаления
"_id": ObjectId ("4d5192665777000000005490")
источник
Несмотря на то, что этот пост устарел, collection.remove устарел!
collection.delete_one
следует использовать вместо этого!Более подробную информацию можно найти здесь, в разделе #remove.
источник
Предположим, у нас есть эта фиктивная коллекция:
просто используйте:
он будет удален с таким ответом:
Это оно.
источник
Решение и пример:
1- C: \ MongoDB \ Server \ 3.2 \ bin> mongo (пока не вводите команду, потому что вы еще не подключены ни к какой базе данных, вы подключены только к серверу базы данных mongodb).
2-
3-
4-
теперь вы видите, что WriteResult ({"nRemoved": 1}) равен 1, а не 0.
Готово.
источник