如果key是mongodb中的uuid,如何选择值

zhu mo

mongodb 数据是这样的:

{
  "_id": "123dsadasfa454sdsaw",
  "hashmap": {
    "uuid-12sadsadw5": {
      "name": "bob"
    },
    "uuid-12sadsadwew5": {
      "name": "alice"
    }
  },
  "age": 10
}

“hashmap”如java HashMap,键为uuid,如“uuid-12sadsadwew5”,值为object。我想获取“hashmap”值中的名称不为空的数据。我使用 sql :

db.tabl1.find({"hashmap.values.name":{$ne:null}})

但不能得到正确的结果

杰夫

您可以使用此聚合查询:

  • 首先用于$objectToArray创建一个包含值k的数组v由于我们不知道键 ( k),我们可以按值 ( v)进行搜索
  • 然后$unwind数组
  • 以及$match名称不为空的值。
  • 然后使用 重新组合并重新创建对象$arrayToObject
db.collection.aggregate([
  {
    "$set": {
      "hashmap": {
        "$objectToArray": "$hashmap"
      }
    }
  },
  {
    "$unwind": "$hashmap"
  },
  {
    "$match": {
      "hashmap.v.name": {
        "$ne": null
      }
    }
  },
  {
    "$group": {
      "_id": "$_id",
      "hashmap": {
        "$push": "$hashmap"
      }
    }
  },
  {
    "$set": {
      "hashmap": {
        "$arrayToObject": "$hashmap"
      }
    }
  }
])

示例在这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 MongoDB 中,如果我的文本包含 UUID,文本是如何提取的?

如果Key字段是类的实例,如何更新HashMap中的值?

如何使用 Golang 在 MongoDB 中存储 UUID?

如果R中的所有值都是NA,如何选择具有最大值的行

如果选择,如何更改<option>的输出值?

如果值是对象数组,如何在MongoDB集合中列出唯一值?

如果从数组中的 B 列中选择特定值,如何从 A 列中获取值?

MongoDB聚合-如果数组中的值匹配

如果 rank() 在 sql 中重复某些值,如何从 6 个值中选择前 5 个值?

如果更改选择标记中的选项值,如何启用按钮

如果某个值,psql如何选择对象数组中是否有任何属性

如果我的列值在MySQL中为逗号,该如何选择行?

如果主模型或 Eloquent 中的关系存在列值,我如何选择一行

如果在mongodb中仅知道一个字段值,则仅选择某些字段

如何从mongodb查找选择不同的值

MongoDB罗盘:如何选择字段的不同值

MongoDB选择与数组中的值匹配的记录

如果未找到“考虑值”,该如何选择恒定值?

SQL:如果值可以为空,如何按值选择

MongoDB - 如果对象包含低于 x 的值,如何删除数组中的对象?

如何从选择组件中获取选择的值

如果在 PostgresQL 中存在其他第 2 列值,如何选择第 1 列值?

如果它们的值在 col2 但不在 Python Pandas 的列表中,如何从 col1 中选择值?

如何插入UUID的值?

如何在MongoDB C#驱动程序中按值的字段范围选择文档?

如果网址与值匹配,如何选择下拉菜单?

如果值/标题包含文本,如何选择元素

如果字段的值为 0 或 1,如何选择总和?

如果值是正数或负数,如何选择条形颜色?