Mongo db удалить объекты json

У меня есть объект mongo json следующим образом

{
  "_id" : new BinData(3, "RDHABb22XESWvP83FplqJw=="),
  "name" : "NEW NODE",
  "host" : null,
  "aet" : null,
  "studies" : ["1.3.12.2.1107.5.99.3.30000008061114424970500000589"],
  "testcases" : [new BinData(3, "Zhl+zIXomkqAd8NIkRiTjQ==")],
  "sendentries" : [{
     "_id" : "1.3.12.2.1107.5.99.3.30000008061114424970500000589",
     "Index" : 0,
     "Type" : "Study"
     }, {
      "_id" : "cc7e1966-e885-4a9a-8077-c3489118938d",
      "Index" : 1,
      "Type" : "TestCase"
    }]
}

Поля «Исследования» и «Тестовые случаи» теперь устарели, и теперь я сохраняю эту информацию в новом поле под названием SendEntries. Я хотел бы избавиться от исследований и тестовых случаев из старых записей и отменить сопоставление этих полей в будущем. Я хочу знать, как я могу обновить свои текущие коллекции, чтобы избавиться от полей Studies и TestCases.

Я всего несколько недель в Mongo.


person Goks    schedule 20.03.2014    source источник
comment
возможный дубликат Как удалить устаревшие поля в Mongo?   -  person joao    schedule 20.03.2014


Ответы (2)


Вы можете использовать оператор $unset с обновлением.

db.collection.update({},
    { $unset: {
      "studies": "",
      "testcases": ""
    },
    { "upsert": false, "muti": true }
)

И это удалит все поля из всех ваших документов в вашей коллекции.

person Neil Lunn    schedule 20.03.2014

Используйте $unset, есть страница руководства, например.

db.yourCollection.update( { }, { $unset: { Исследования: "", контрольные примеры: "" } }, {multi: true } )

person arober11    schedule 20.03.2014
comment
Спасибо, ребята. Я использовал $unset. Использование MongoVUE, вероятно, является простым способом для начинающих. Просто обновите способ, которым я решил это в MongoVUE. Выберите коллекцию, которую хотите изменить, щелкните правой кнопкой мыши и выберите «Обновить». В окне Enter Find Json введите следующее { Поле, которое вы хотите удалить: { $exists : true } } Нажмите count, чтобы найти количество экземпляров. В «Введите обновление Json» введите следующее: { $ unset : { Поле, которое вы хотите удалить: количество экземпляров} } Нажмите «Обновить». Если все пойдет хорошо, ваше поле должно исчезнуть. - person Goks; 20.03.2014