计算MongoDB对象中的字段

时间:2018-08-13 14:09:22

标签: mongodb

我想知道对象中的字段数。

假设集合是test,对象是:

{
    "_id" : ObjectId("5b710714773d477d6779a0ac"),
    "_class" : "com.test.finddevice",
    "deviceId" : {
        "_id" : "abc",
        "kind" : "abc"
    },
    "id" : 123,
    "date" : ISODate("2018-08-10T00:00:00.000Z"),
    "usage" : NumberLong(0),
    "Status" : "pass",
    "valid" : false,
    "name" : "xyx",
    "State" : "qwerty"
} .

对象中的总字段为10个。我可以根据小于10或大于10的字段大小来查找或查询它们吗?

1 个答案:

答案 0 :(得分:1)

您可以在3.6中使用以下查询。

使用$objectToArrray将所有顶部键和值对转换为文档数组,然后使用$size将其转换为文档大小。

您可以使用$expr在常规查询中使用聚合功能。 $lt表达式可将数组大小与输入值进行比较。

$$ROOT用于引用顶级文档。

db.col.find([
  {"$expr":{"$lt":[{"$size":{"$objectToArray":"$$ROOT"}}, 10]}}
])