Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 汇总Mongo子文档';领域_Mongodb - Fatal编程技术网

Mongodb 汇总Mongo子文档';领域

Mongodb 汇总Mongo子文档';领域,mongodb,Mongodb,给定以下数据库的集合: > db.collection.find() { "_id" : 1, "results" : { "record" : { "price" : 100 } } } { "_id" : 2, "results" : { "record" : { "price" : 200 } } } { "_id" : 3, "results" : { "record" : { "price" : 300 } } } 如何使用聚合(或map reduce)来获取每个结果.reco

给定以下数据库的集合:

> db.collection.find()
{ "_id" : 1, "results" : { "record" : { "price" : 100 } } }
{ "_id" : 2, "results" : { "record" : { "price" : 200 } } }
{ "_id" : 3, "results" : { "record" : { "price" : 300 } } }
如何使用聚合(或map reduce)来获取每个
结果.record.price
字段的总和

> db.collection.aggregate( {$group : { _id:"", "results.record.price" : {$sum : "$results.record.price"}}}, {$project:{_id: 0, "results.record.price" : "$results.record.price"}})
Error: Printing Stack Trace
    at printStackTrace (src/mongo/shell/utils.js:37:15)
    at DBCollection.aggregate (src/mongo/shell/collection.js:897:9)
    at (shell):1:15
Mon Oct 28 20:15:24.065 aggregate failed: {
        "errmsg" : "exception: the group aggregate field name 'results.record.price' cannot be used because $group's field names cannot contain '
.'",
        "code" : 16414,
        "ok" : 0
} at src/mongo/shell/collection.js:898
试试这个

db.collection.aggregate({$group : {_id: "", total : {$sum: "$results.record.price"}}}, {$project: {_id: 0, total: 1}})

\u id:“
是什么意思?谢谢你help@kevin
\u id
是组标识符。在这种情况下,由于空字符串是常量,因此处理的每个记录都将合并到一个由该空字符串标识的组中。您可以使用其他常量,如
null
“a”
等。您能检查一下吗-