如何计算MongoDB中嵌入文档中的字段数

时间:2017-04-19 05:24:40

标签: mongodb aggregation-framework

我有一份文件如下:

java Test | wc

我想计算{ "_id" : ObjectId("58f5f4e0e405972824b8ff03"), "type" : "Defect Status", "data" : { "1" : [ "121764", "Bug", "7/6/15", "Closed" ], "2" : [ "121830", "Bug", "7/7/15", "Closed" ], "3" : [ "122333", "Bug", "7/16/15","Closed"], "4" : [ "122339", "Bug", "7/16/15","Closed"], "5" : [ "122340", "Bug", "7/16/15", "Closed"] } } 字段内的字段数,这是另一个文档中的嵌入文档。因为它不是一个阵列,所以我找不到办法。

2 个答案:

答案 0 :(得分:2)

您可以使用版本3.4.4中引入的新$objectToArray表达式:https://jira.mongodb.org/browse/SERVER-18794

db.test.aggregate([{$project: {data_size: {$size: {$objectToArray: "$data"}}}}])

答案 1 :(得分:0)

这可以用宿主语言完成。完成db.find()获取文档(称之为d)后,调用

Object.keys(d).length

假设您的主机语言是JavaScript。对于Python,Ruby或Java主机或任何其他主机语言,有类似的方法。