计数嵌套通配符数组mongodb查询

计数嵌套通配符数组mongodb查询,mongodb,Mongodb,我有以下用户和车型数据: [ { “用户id”:“ebebc012-082c-4e7f-889c-755d2679bdab”, “car_1a58db0b-5449-4d2b-a773-ee055a1ab24d”:1, “car_37c04124-cb12-436c-902b-6120f4c51782”:0, “car_b78ddcd0-1136-4f45-8599-3ce8d937911f”:1 }, { “用户id”:“f3eb2a61-5416-46ba-bab4-459fbdcc7e29

我有以下用户和车型数据:

[
{
“用户id”:“ebebc012-082c-4e7f-889c-755d2679bdab”,
“car_1a58db0b-5449-4d2b-a773-ee055a1ab24d”:1,
“car_37c04124-cb12-436c-902b-6120f4c51782”:0,
“car_b78ddcd0-1136-4f45-8599-3ce8d937911f”:1
},
{
“用户id”:“f3eb2a61-5416-46ba-bab4-459fbdcc7e29”,
“car_1a58db0b-5449-4d2b-a773-ee055a1ab24d”:1,
“car_0d15eae9-9585-4f49-a416-46ff56cd3685”:1
}
]
我想看看有多少用户使用mongodb拥有一辆值为1的车,比如:

{“car_1a58db0b-5449-4d2b-a773-ee055a1ab24d”:2}
对于这个例子

问题是,我永远不会知道字段car\uz将如何,它们将具有随机结构(通配符)

注:

  • 车辆id和用户id处于同一级别

  • 没有给出car_id,我只是想知道整个数据库中哪些是值为1的最常见的car_

      • $group
        \u id
        并使用
        $objectToArray
        将根对象转换为数组
      • $unwind
        解构
        root
        数组
      • $match
        过滤器
        root.v
        为1
      • $group
        root.k
        并获取总计数

      那么,
      汽车id
      是否已给出,您是否希望在那里操作?或者
      car\u id
      未知,您想在整个集合中查找吗?@J.F我想采样我的整个数据库中有多少辆car\u id:1,您是说如何进行MongoDB查询?还是一个简单的Javascript(nodejs)代码?@BinaryMan Mongodb代码就可以了,谢谢你提醒我
      db.collection.aggregate([
        {
          $group: {
            _id: "$_id",
            root: { $first: { $objectToArray: "$$ROOT" } }
          }
        },
        { $unwind: "$root" },
        { $match: { "root.v": 1 } },
        {
          $group: {
            _id: "$root.k",
            count: { $sum: 1 }
          }
        }
      ])