我是新接触MongoDB的,我在一个集合上创建了一个VIEW,我需要修改这个VIEW。假设我们有一个集合CollectionName,它有一个数组字段aArray,这个数组有两个字段,arrayField1和arrayField2。目前正在从aArray中选择字段,如下所示:
$replaceRoot :
{
newRoot: {
$mergeObjects: [
{
arrayFieldNew1: '$aArray.arrayField1',
arrayFieldNew1: '$aArray.arrayField2'
}
]
}
}
现在集合中增加了一个新的数组bArray,bArray和aArray相同,bArray的字段名和aArray相同,分别是arrayField1和arrayField2,我需要从aArray中选择arrayField1和arrayField2。仅当bArray不存在时。如果bArray存在,则从bArray中选择arrayField1和arrayField2。
我希望我能传达我的要求。
我试着用谷歌搜索这个问题,但没有得到任何解决方案。
2条答案
按热度按时间vlju58qv1#
这可以通过为每个字段使用$cond和$type来实现,例如:
yfwxisqw2#
你可以使用条件来解决这个问题,一个合适的例子是
$ifNull
。参见https://runkit.com/embed/jatnkig9hbye上的演示