gpt4 book ai didi

MongoDB - 如何查询一个对象中的多个属性并对结果进行分组

转载 作者:可可西里 更新时间:2023-11-01 09:28:17 25 4
gpt4 key购买 nike

我正在尝试学习 MongoDB,但我似乎不知道该怎么做。

假设我有三个这样的对象:

         {
"_id": 99990,
"type" : 15,
"attributes": [
{
"id": 1,
"value": 115
}
]
},
{
"_id": 99991,
"type" : 5,
"attributes": [
{
"id": 1,
"value": 120
}
]
},
{
"_id": 99992,
"type" : 5,
"attributes": [
{
"id": 1,
"value": 120
}
]
},
{
"_id": 99993,
"type" : 5,
"attributes": [
{
"id": 1,
"value": 150
}
]
},

如何根据值为 150 的属性“id”1 搜索项目并仅返回 id 99993?我今天刚开始玩 MongoDB,所以这可能是一个非常基本的问题。

为了增加挑战,我如何按属性/id/值对类型 5 的每个项目的结果进行分组,并得到如下结果:

 "id" : 1, "value" : 150, "count" : 1
"id" : 1, "value" : 120: "count" : 2

这只是示例数据,模式非常复杂,但对于本练习而言,它应该足够了。

最佳答案

对于第一部分,您应该能够通过执行以下操作来检索该记录:

db.collectionName.find({"attributes.id": 1, "attributes.value": 150});

这将从任何具有属性数组元素且 id = 1 且值 = 150 的对象中仅检索 _id 字段。

由于问题的第二部分涉及返回匹配项计数,因此您应该使用 map-reduce 探索您的选择。 .您无法使用简单的 Mongo 查询生成该结果。

关于MongoDB - 如何查询一个对象中的多个属性并对结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10116350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com