@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
}
return true;
}
Попробуйте следующее: если ваша коллекция была «примером»
db.example.update({}, {$unset: {words:1}}, false, true);
См. это:
http://www.mongodb.org/display/DOCS/ Обновление # Обновление-% 24unset
UPDATE:
Вышеупомянутая ссылка больше не закрывает '$ unset'ing. Комментарий Ника Коттрелла ниже - путь. Обязательно добавьте {multi: true}
, если вы хотите удалить это поле из всех документов в коллекции; в противном случае он удалит его только из первого найденного документа, который соответствует совпадению. См. Это для обновленной документации:
https://docs.mongodb.com/manual/reference/operator/update/unset/
Пример:
db.example.update({}, {$unset: {words:1}} , {multi: true});
Проверка наличия «слов» и последующего удаления из документа
db.users.update({"tags.words" :{$exists: true}},
{$unset:{"tags.words":1}},false,true);
true указывает на обновление нескольких документов, если они совпадают.
вы также можете сделать это в агрегации, используя проект в 3.4
{$ project: {"tags.words": 0}}
Чтобы удалить или удалить поле в MongoDB
db.getCollection('userData').update({}, {$unset: {pi: 1}})
db.getCollection('userData').update({}, {$unset: {pi: 1}}, {multi: true})
В начале я не понял, почему у вопроса есть щедрость (я думал, что у вопроса есть хороший ответ, и нечего добавить), но затем я заметил, что ответ, который был принят и одобрен 15 раз, был на самом деле не так!
Да, вы должны использовать $unset
operator , но этот unset собирается удалить ключ слова, который не существует для документа для коллекции. Таким образом, в основном он ничего не сделает.
Итак, вам нужно сказать Mongo, чтобы посмотреть в тегах документа, а затем в словах с использованием точечной нотации . Итак, правильный запрос.
db.example.update(
{},
{ $unset: {'tags.words':1}},
false, true
)
Просто ради завершения, я буду ссылаться на другой способ сделать это , что намного хуже, но таким образом вы можете измените поле любым пользовательским кодом (даже на основе другого поля из этого документа).
Чтобы ссылаться на пакет и удалять различные «клавиши», попробуйте
db['name1.name2.name3.Properties'].remove([
{
"key" : "name_key1"
},
{
"key" : "name_key2"
},
{
"key" : "name_key3"
}
)]
По умолчанию метод update () обновляет один документ. Установите параметр Multi Parameter для обновления всех документов, соответствующих критериям запроса.
Изменено в версии 3.6. Синтаксис:
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ]
}
)
Пример:
db.getCollection('products').update({},{$unset: {translate:1, qordoba_translation_version:1}}, {multi: true})
В вашем примере:
db.getCollection('products').update({},{$unset: {'tags.words' :1}}, {multi: true})
db.example.updateMany({},{"$unset":{"tags.words":1}})
Мы также можем использовать это для обновления нескольких документов.
db.example.update({},{$unset: {words:1}}, {multi: true})
– Nic Cottrell 14 August 2014 в 09:41