1
, пожалуйста, посмотрите на мой MongoDB 2.4 базы данных: таблицы поездки:Удалить элементы из массива объектов MongoDB
{_id: 1,
"actions": [{ "type": "Flight" }, { "type": "Go" }, { "type": "Train" }, { "type": "Sleep" }]
},
{_id: 2,
"actions": [{ "type": "Go" }, { "type": "Sleep" }, { "type": "Taxi" }]
},
{_id: 3,
"actions": [{ "type": "Flight" }]
},
{_id: 4
}
Я хочу удалить действие, какой тип является «Полет», «Такси», или «Поезд ». Это мой сценарий:
db.trip.update({"actions": {$exists: true}}, {$pull: {"actions": {"type": {$in: ["Flight", "Taxi", "Train"]}}}});
или:
db.trip.update({"actions": {$exists: true}}, {$pull: {"actions": {"type": "Flight"}}});
db.trip.update({"actions": {$exists: true}}, {$pull: {"actions": {"type": "Train"}}});
db.trip.update({"actions": {$exists: true}}, {$pull: {"actions": {"type": "Taxi"}}});
Ни в коем случае не может решить это требование. Я не знаю, какая разница в mongoDB на MacOS и CentOS. Я тестировал это на 2 ОС, тестировал терминал и MongoHub. Пожалуйста, помогите мне!
объекты после того, как будут обновлены:
{_id: 1,
"actions": [{ "type": "Go" }, { "type": "Sleep" }]
},
{_id: 2,
"actions": [{ "type": "Go" }, { "type": "Sleep" }]
},
{_id: 3,
"actions": []
},
{_id: 4
}
Спасибо @parvin! Первое решение в порядке, но когда я выполняю второй - никаких изменений не происходит. И можете ли вы объяснить, почему мое решение не работает? – tridang