gpt4 book ai didi

javascript - MongoDB - 如何仅在存在的字段上使用 $ifNull

转载 作者:可可西里 更新时间:2023-11-01 10:37:35 24 4
gpt4 key购买 nike

我正在使用 $lookup,它可能会或可能不会返回某些内容。但如果是这样,我需要检查查找的值并检查特定字段以查看它是否为空,如果是,则将其设置为某个值。

我试过这个:

{
$lookup:
{
from:
"item_templates",
localField:
"based_on",
foreignField:
"_id",
as:
"template"
}
},
{
$addFields:
{
"template.image.url":
{
$ifNull:
[
"$template.image.url",
"http://via.placeholder.com/400x700/d3d3d3/000000/?text=No%20Image&"
]
}
}
},

但它似乎对template.image.url(这是一个对象数组)没有影响,它实际上返回一个数组,其中一个元素为null.

最佳答案

您可以使用较新的$lookup 语法来实现预期的结果

db.collection.aggregate([
{ "$lookup": {
"from": "item_templates",
"let": { "based_on": "$based_on" },
"pipeline": [
{ "$match": { "$expr": { "$eq": ["$_id", "$$based_on"] }}},
{ "$addFields": {
"image.url": {
"$ifNull": [
"$image.url",
"http://via.placeholder.com/400x700/d3d3d3/000000/?text=No%20Image&"
]
}
}}
],
"as": "template"
}}
])

关于javascript - MongoDB - 如何仅在存在的字段上使用 $ifNull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54124711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com