如何从键值格式文档中查询cow与buffalo的所有不重复颜色组合
不重复动物-颜色组合查询实现方案
以下是不同场景下的查询实现方式,均会自动对动物名称+颜色的组合去重:
MongoDB 聚合查询
如果你的文档存储在MongoDB中,使用聚合管道即可实现:
db.你的集合名.aggregate([ // 按动物名+颜色分组,天然去重 { $group: { _id: { name: "$Animal.name", color: "$Animal.Color" } } }, // 可选:按你需要的格式拼接输出 { $project: { _id: 0, combination: { $concat: [ "$_id.name", ":", "$_id.color" ] } } } ])
命令行jq工具处理本地JSON文件
如果是本地JSON文件,用jq工具快速处理:
# -s 参数将多个输入JSON对象读为数组,unique自动按组合去重 jq -s 'map({name: .Animal.name, color: .Animal.Color}) | unique | map("\(.name):\(.color)")' 你的数据文件路径.json
MySQL JSON列查询
如果数据存在MySQL的JSON类型列中,用DISTINCT去重即可:
SELECT DISTINCT CONCAT( JSON_UNQUOTE(data->'$.Animal.name'), ':', JSON_UNQUOTE(data->'$.Animal.Color') ) AS combination FROM 你的表名;
注:你需求中提到的buffalo:white不存在于你给出的样例数据中,样例数据返回的水牛对应组合为buffalo:black,如果你的全量数据集包含该条数据,上述查询会自动返回对应结果
内容的提问来源于stack exchange,提问作者Techianky
相关产品推荐
相关产品推荐

