Я запрашиваю коллекцию, и в этой коллекции у меня есть массив объектов.В этом массиве я хочу использовать проекцию, чтобы возвращать только одно поле в каждом объекте.Однако я не хочу удалять все данные за пределами этого объекта.
Допустим, один документ в коллекции выглядит следующим образом
{
"a": "some val",
"b": "some other val",
"c": [
{
"d": "some array val",
"e": "some other array val"
}
]
}
И скажем, я хочу удалить все поля вмассив, кроме 'd', заканчивается
{
"a": "some val",
"b": "some other val",
"c": [
{
"d": "some array val",
}
]
}
Я попытался:
db.collection.find({}, { "c.d": 1 })
, но это также удалило "a" и "b" и только что вернуло:
{
"c": [
{
"d": "some array val",
}
]
}
Кроме того, я не могу сделать:
db.collection.find({}, { "c.e": 0 })
, потому что могут быть и другие поля, кроме 'e', и они также должны быть скрыты.