我试图在文档不存在时显示为空
当我在项目中添加以下$ ifNull时,结果与预期不符,我这样做是因为某些文档没有fields.reviews.title字段,并且应用程序的开发人员要求我发送- 1或为空,而不是不发送。我没有发布整个查询,因为它太长且无关紧要,但是如果您需要它,请告诉我。
$ project中的相关字段:
"deals.reviews.author.name": 1,
"deals.reviews.publishedDate": 1,
"deals.reviews.ranking": 1,
"deals.reviews.title": {$ifNull: ["$deals.reviews.title", -1]},
"deals.reviews.author.avatar_url": 1
结果:
[
{
"ranking": 3,
"author": [
{
"avatar_url": "/uploads/files/Hz9K2erg_PotpCly.jpg",
"name": {
"last": "",
"first": "Eb"
}
}
],
"publishedDate": "2019-10-25T07:08:17.538Z",
"title": [
[
"hhh",
"good shopping"
],
[],
[],
[]
]
},
{
"ranking": 4,
"author": [
{
"avatar_url": "/uploads/files/Hz9K2erg_PotpCly.jpg",
"name": {
"last": "",
"first": "Eb"
}
}
],
"publishedDate": "2019-10-26T02:28:43.742Z",
"title": [
[
"hhh",
"good shopping"
],
[],
[],
[]
]
}
]
如您所见,字段标题看起来像这样。
"title": [
[
"hhh",
"good shopping"
],
[],
[],
[]
]
如果不添加$ ifNull而是添加1,则结果为:
$ project:
"deals.reviews.author.name": 1,
"deals.reviews.publishedDate": 1,
"deals.reviews.ranking": 1,
"deals.reviews.title": 1,
"deals.reviews.author.avatar_url": 1
结果:
[
{
"ranking": 3,
"author": [
{
"avatar_url": "/uploads/files/Hz9K2erg_PotpCly.jpg",
"name": {
"last": "",
"first": "Eb"
}
}
],
"publishedDate": "2019-10-25T07:08:17.538Z"
},
{
"title": "hhh",
"ranking": 4,
"author": [
{
"avatar_url": "/uploads/files/Hz9K2erg_PotpCly.jpg",
"name": {
"last": "",
"first": "Eb"
}
}
],
"publishedDate": "2019-10-26T02:28:43.742Z"
}
]
但是正如我之前提到的,其中一个文档没有标题字段,这是导致APP出现问题的原因。
预先感谢您的帮助。