Я пытаюсь отфильтровать элементы из поля массива документов mongoDB, которые не равны предоставленному значению, и создать новое поле с отфильтрованными элементами, используя агрегацию с помощью метода $filter, но он не фильтрует, а вместо этого показывает все элементы в поле массива документа.
Вот пример:
Я хочу запросить документы, в хобби которых есть «чтение», а затем создайте еще одно новое поле массива в документе, которое не включает «чтение» с использованием агрегации.
пример данных:
[
{
"_id": 1,
"name": "Alice",
"age": 30,
"hobbies": ["reading","traveling"]
},
{
"_id": 2,
"name": "Bob",
"age": 25,
"hobbies": ["gardening", "photography"]
},
{
"name": "James",
"age": 30,
"hobbies": ["reading", "painting"]
},
{
"_id": 3,
"name": "Charlie",
"age": 35,
"hobbies": ["swimming", "cycling"]
}
]
Ожидаемый результат:
[
{
"_id": 1,
"name": "Alice",
"age": 30,
"hobbies": ["reading", "painting"], // includes "reading"
"FilteredItems": ["painting"] // Does not include "reading"
},
{
"name": "James",
"age": 30,
"hobbies": ["reading", "painting"], // includes "reading"
"FilteredItems": ["painting"] // Does not include "reading"
}
]
Просто как в javascript Array.find((item) => item != нежелательно)
Я попробовал метод $filter:db.users.aggregate([
{
$match: {
hobbies: "reading"
}
},
{
$project: {
name: 1,
age: 1,
filteredItems: {
$filter: {
input: "$hobbies",
as: "hobby",
cond: { $eq: ["$hobby", "reading"] }
}
}
}
}
]);
Подробнее здесь: https://stackoverflow.com/questions/787 ... ified-item
Как создать другое поле в документе mongoDB, которое фильтрует указанный элемент из существующего поля массива документо ⇐ JAVA
Программисты JAVA общаются здесь
1720097192
Anonymous
Я пытаюсь отфильтровать элементы из поля массива документов mongoDB, которые не равны предоставленному значению, и создать новое поле с отфильтрованными элементами, используя агрегацию с помощью метода $filter, но он не фильтрует, а вместо этого показывает все элементы в поле массива документа.
Вот пример:
Я хочу запросить документы, в хобби которых есть «чтение», а затем создайте еще одно новое поле массива в документе, которое не включает «чтение» с использованием агрегации.
пример данных:
[
{
"_id": 1,
"name": "Alice",
"age": 30,
"hobbies": ["reading","traveling"]
},
{
"_id": 2,
"name": "Bob",
"age": 25,
"hobbies": ["gardening", "photography"]
},
{
"name": "James",
"age": 30,
"hobbies": ["reading", "painting"]
},
{
"_id": 3,
"name": "Charlie",
"age": 35,
"hobbies": ["swimming", "cycling"]
}
]
Ожидаемый результат:
[
{
"_id": 1,
"name": "Alice",
"age": 30,
"hobbies": ["reading", "painting"], // includes "reading"
"FilteredItems": ["painting"] // Does not include "reading"
},
{
"name": "James",
"age": 30,
"hobbies": ["reading", "painting"], // includes "reading"
"FilteredItems": ["painting"] // Does not include "reading"
}
]
Просто как в javascript Array.find((item) => item != нежелательно)
Я попробовал метод $filter:db.users.aggregate([
{
$match: {
hobbies: "reading"
}
},
{
$project: {
name: 1,
age: 1,
filteredItems: {
$filter: {
input: "$hobbies",
as: "hobby",
cond: { $eq: ["$hobby", "reading"] }
}
}
}
}
]);
Подробнее здесь: [url]https://stackoverflow.com/questions/78707215/how-to-create-another-field-in-mongodb-document-that-filters-the-specified-item[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия