在MongoDB里导入一组包含type、brand、colour、storage的数据后,如何列出每个brand生产的除colour为white以外的所有colour
时间: 2023-12-10 13:37:22 浏览: 24
你可以使用MongoDB的聚合框架进行查询和筛选。下面是一个可能的查询:
```
db.collection.aggregate([
{ $match: { brand: "your_brand_name_here" } },
{ $unwind: "$colour" },
{ $match: { "colour": { $ne: "white" } } },
{ $group: { _id: "$brand", colours: { $addToSet: "$colour" } } }
])
```
这个查询的步骤如下:
1. 使用 `$match` 过滤出你想要查询的品牌;
2. 使用 `$unwind` 将 `colour` 字段中的数组展开,以便对每个颜色进行操作;
3. 使用 `$match` 过滤出所有颜色不是白色的记录;
4. 使用 `$group` 按照品牌进行分组,并使用 `$addToSet` 将所有颜色添加到一个数组当中。
这个查询会返回一个文档,包含了你查询的品牌的名字和该品牌所有除了白色之外的颜色。
相关问题
在MongoDB里导入一组包含type、brand、colour、storage的数据后,如何列出每种type的所有colour和storage
你可以使用 MongoDB 的聚合框架来实现这个需求。具体步骤如下:
1. 使用 `$group` 操作符按照 `type` 字段进行分组,将每个 `type` 对应的所有文档合并到一个数组中。
2. 使用 `$project` 操作符选择需要的字段,即 `colour` 和 `storage`。
3. 最后使用 `$sort` 操作符对结果进行排序。
下面是一个示例聚合查询:
```
db.collection.aggregate([
{
$group: {
_id: "$type",
colours: { $addToSet: "$colour" },
storages: { $addToSet: "$storage" }
}
},
{
$project: {
_id: 0,
type: "$_id",
colours: 1,
storages: 1
}
},
{
$sort: {
type: 1
}
}
])
```
这个查询将按照 `type` 字段进行分组,对于每个 `type`,使用 `$addToSet` 操作符将对应的所有 `colour` 和 `storage` 值添加到一个数组中。最后使用 `$project` 操作符选择需要的字段,并使用 `$sort` 操作符按照 `type` 进行排序。
在MongoDB里导入一组包含type、brand、colour、storage的数据后,如何列出除colour为black外所有可用于type为Phone的colour
可以使用以下MongoDB查询语句来实现:
```
db.collection.find({
"type": "Phone",
"colour": { "$ne": "black" }
}, {
"_id": 0,
"colour": 1
})
```
这条查询语句会返回所有`type`为`Phone`且`colour`不等于`black`的文档,同时只会返回文档中的`colour`字段。`_id`字段被排除在结果之外,因为我们在查询中将其设置为0。
如果你想要返回其他字段,只需要在第二个参数中添加相应的字段即可。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)