【发布时间】:2019-06-26 08:41:19
【问题描述】:
我正在尝试过滤标题与给定输入标题数组匹配的字段数组,并显示不匹配字段的完整文档。我有以下文档。实际上,我想使用 MongoTemplate 来实现这一点,但首先我试图通过 mongo 查询来获取它。以下是我的文件:
{
"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 很陌生。
【问题讨论】:
标签: mongodb spring-boot aggregation-framework mongotemplate