使用 MongoDB Shell 在集合中过滤 MongoDB 个集合
Filtering MongoDB collections within collection using MongoDB Shell
抱歉这个问题。我刚开始使用 MongoDB 和 MongoDB Shell.
我有一个名为 Dealers 的数据库,看起来有点像这样(非常简单):
[
{
"Id": 1,
"Vehicles": [
{
"Manufacturer": "Ford"
},
{
"Manufacturer": "MG"
},
{
"Manufacturer": "Citroen"
}
]
},
{
"Id": 2,
"Vehicles": [
{
"Manufacturer": "Ford"
},
{
"Manufacturer": "Nissan"
},
{
"Manufacturer": "Ford"
}
]
}
]
我想了解您如何在集合 EG 中过滤集合。假设我想 select 来自 Id 2 的所有福特。
我得到了:
const dealer = database.collection('Dealers');
const result = await dealer.find({Id: 2})
我试过了:
const result = await dealers.find({
Id: 2,
Vehicles: [
{
Manufacturer: "Ford"
}
]
})
但我知道这行不通,因为它没有遍历 Vehicles 集合。这是您要使用聚合的那种实例吗?就像我说的,我对这种环境很陌生,非常感谢任何指点。
刚刚试过了。您可以使用 聚合函数 来实际匹配集合中数组内的项目。就像下面的查询方式将 select 所有 id 等于 1 且 Manufacturer 等于 Ford
的文档
db.MyCollection.aggregate([{$match:{Id:1}},{$unwind:"$Vehicles"}, {$match: {"Vehicles.Manufacturer":"Ford"}}]);
就这样回来了。我使用了我自己的 ID,即等于一个你可以更改它。
抱歉这个问题。我刚开始使用 MongoDB 和 MongoDB Shell.
我有一个名为 Dealers 的数据库,看起来有点像这样(非常简单):
[
{
"Id": 1,
"Vehicles": [
{
"Manufacturer": "Ford"
},
{
"Manufacturer": "MG"
},
{
"Manufacturer": "Citroen"
}
]
},
{
"Id": 2,
"Vehicles": [
{
"Manufacturer": "Ford"
},
{
"Manufacturer": "Nissan"
},
{
"Manufacturer": "Ford"
}
]
}
]
我想了解您如何在集合 EG 中过滤集合。假设我想 select 来自 Id 2 的所有福特。
我得到了:
const dealer = database.collection('Dealers');
const result = await dealer.find({Id: 2})
我试过了:
const result = await dealers.find({
Id: 2,
Vehicles: [
{
Manufacturer: "Ford"
}
]
})
但我知道这行不通,因为它没有遍历 Vehicles 集合。这是您要使用聚合的那种实例吗?就像我说的,我对这种环境很陌生,非常感谢任何指点。
刚刚试过了。您可以使用 聚合函数 来实际匹配集合中数组内的项目。就像下面的查询方式将 select 所有 id 等于 1 且 Manufacturer 等于 Ford
的文档db.MyCollection.aggregate([{$match:{Id:1}},{$unwind:"$Vehicles"}, {$match: {"Vehicles.Manufacturer":"Ford"}}]);
就这样回来了。我使用了我自己的 ID,即等于一个你可以更改它。