Удалить на _id в консоли MongoDB

В консоли MongoDB как удалить запись по идентификатору? Здесь моя коллекция:

[ 
  {
     "_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },
     "name" : "Gazza"
  },
  {
     "_id" : { "$oid" : "4d513345cc9374271b02ec6c" },
     "name" : "Dave",
     "adminOf" : { },
     "email" : "[email protected]"
  }
]

И вот команды, которые я пробовал, которые не работают:

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, если это имеет значение

Спасибо

Ответ 1

Очень близко. Это будет работать:

db.test_users.remove( {"_id": ObjectId("4d512b45cc9374271b02ec4f")});

то есть. вам не нужен новый для ObjectId.

Ответ 2

Ответ заключается в том, что веб-консоль/оболочка на mongodb.org ведет себя по-другому и не так, как я ожидал. Установленная версия дома отлично работала без проблем, т.е. автоматически созданный _id в веб-оболочке был сохранен следующим образом:

"_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },

Та же самая настройка документа у себя дома и автоматически сгенерированная _id была сохранена следующим образом:

"_id" : ObjectId("4d5192665777000000005490")

Запросы, обработанные против последнего без проблем.

Ответ 3

Я пробовал. Это отлично работает для меня.

db.test_users.remove( {"_id": ObjectId("4d512b45cc9374271b02ec4f")});

Ответ 4

Ну, _id - это объект в вашем примере, поэтому вам просто нужно передать объект

'db.test_users.remove({"_id": { "$oid" : "4d513345cc9374271b02ec6c" }})'

Это должно работать

Edit: добавлен трейлинг-пар, чтобы скомпилировать его.

Ответ 5

Если вы хотите удалить список идентификаторов, это отлично работает.

db.CollectionName.remove({
    "_id": {
        $in: [
            ObjectId("0930292929292929292929"),
            ObjectId("0920292929292929292929")
        ]
     }
}) 

Ответ 6

Я только что наткнулся на это сам, и этот вариант работал у меня:

db.foo.remove({**_id**: new ObjectId("4f872685a64eed5a980ca536")})

Ответ 7

У вас есть несколько узлов mongodb в наборе реплик?

Я нашел (я использую оболочку robomongo gui mongo, я полагаю, что в других случаях применяется то же самое), что правильный синтаксис удаления, т.е.

db.test_users.remove({"_id": ObjectId("4d512b45cc9374271b02ec4f")})

... не работает, если вы не подключены к первичному node набора реплик.

Ответ 8

сначала получить функцию ObjectID от mongodb ObjectId = require (mongodb).ObjectID;

то вы можете вызвать _id с помощью функции удаления

"_ id": ObjectId ( "4d5192665777000000005490" )

Ответ 9

Решение и пример:

1- C:\MongoDB\Server\3.2\bin > mongo (еще не выдавать команду, потому что вы еще не подключены к какой-либо базе данных, вы подключены только к серверу базы данных mongodb).

2-

показать dbs analytics_database 0.000GB локальный 0.000GB test_database 0.000GB

3-

использовать test_database переключился на db test_database

4 -

db.Collection.remove({ "_ id": ObjectId ( "5694a3590f6d451c1500002e" )}, 1); WriteResult ({ "nRemoved": 1})

теперь вы видите WriteResult ({ "nRemoved": 1}) равно 1 не 0.

Готово.

Ответ 10

Несмотря на то, что этот пост устарел, collection.remove устарел! Вместо этого следует использовать collection.delete_one !

Больше информации можно найти здесь под #remove