Я пытаюсь отфильтровать массив полей, заголовки которых соответствуют заданному входному массиву заголовков, и отобразить весь документ, исключая несопоставленные поля. У меня есть документ ниже.На самом деле, я хочу добиться этого с помощью MongoTemplate, но сначала я пытаюсь получить его с помощью запроса Монго.Ниже приведен мой документ:
{
"version": 2,
"pageName": "Content_2",
"domain": "bingo.com",
"locale": "en-us",
"contents": [
{
"contentName": "Template_2",
"fields": [
{
"fieldType": "Plain Text",
"id": "companyName456",
"title": "Company Name",
"alternateText": "Company Name",
"value": "Microsoft",
"placeholder": "Enter your Company name"
},
{
"fieldType": "Plain Text",
"id": "designation789",
"title": "Designation",
"alternateText": "Designation",
"value": "Software Engineer",
"placeholder": "Enter your designation name"
}
]
}
]
}
Я пробовал запрос ниже, но он возвращает пустой результат:
db.contents.aggregate(
[
{ $match: { locale: "en-us" } },
{
$redact: {
$cond: {
if: { $in: [ "$title", ["Designation"] ] },
then: "$$DESCEND",
else: "$$PRUNE"
}
}
}
]
);
Я ожидаю результата ниже:
{
"pageName": "Home",
"link": "hello.com",
"locale": "en-us",
"contents": [
{
"contentName": "Template_2",
"fields": [
{
"fieldType": "Plain Text",
"id": "designation789",
"title": "Designation",
"alternateText": "Designation",
"value": "Software Engineer",
"placeholder": "Enter your designation name"
}
]
}
]
}
Пожалуйста, руководство.Я довольно новичок в MongoDB.