Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB聚合框架:单元素或空数组到数字的转换_Mongodb_Aggregation Framework - Fatal编程技术网

MongoDB聚合框架:单元素或空数组到数字的转换

MongoDB聚合框架:单元素或空数组到数字的转换,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我想知道使用mongo聚合框架进行此转换的最短、最干净的方法是: { total: [ { value: 200} ] } to { total: 200 } 以及: 也就是说,total应该是value字段的值(数组中始终有一个),或者如果total数组为空,则为零。使用获取第一个数组元素并提供默认值: db.collection.aggregate([ { $project: { total: { $ifNull: [ { $arrayE

我想知道使用mongo聚合框架进行此转换的最短、最干净的方法是:

{ total: [ { value: 200} ] }

to

{ total: 200 }
以及:

也就是说,
total
应该是
value
字段的值(数组中始终有一个),或者如果
total
数组为空,则为零。

使用获取第一个数组元素并提供默认值:

db.collection.aggregate([
    {
        $project: {
            total: { $ifNull: [ { $arrayElemAt: [ "$total.value", 0 ] }, 0 ] }
        }
    }
])

db.collection.aggregate([
    {
        $project: {
            total: { $ifNull: [ { $arrayElemAt: [ "$total.value", 0 ] }, 0 ] }
        }
    }
])