假設我有這個資料:
[
{
"_id": 101,
"name": "ABC",
"students": [
{
"name": "john",
"age": 10,
"city": "CA"
},
{
"name": "danial",
"age": 15,
"city": "KA"
}
]
},
{
"_id": 102,
"name": "DEF",
"students": [
{
"name": "adam",
"age": 20,
"city": "NY"
},
{
"name": "johnson",
"age": 12,
"city": "CA"
}
]
}
]
現在我想獲取姓名和所在城市為 CA 的學生。
我所做的是:
db.collection.find({
"students.city": "CA"
},
{
students: {
$elemMatch: {
"city": "CA"
}
}
})
它回傳:
[
{
"_id": 101,
"students": [
{
"age": 10,
"city": "CA",
"name": "john"
}
]
},
{
"_id": 102,
"students": [
{
"age": 12,
"city": "CA",
"name": "johnson"
}
]
}
]
但是缺少名稱,即 ABC 和 DEF,如何包含?
現在如果我做這樣的事情:
db.collection.find({
students: {
$elemMatch: {
city: "CA"
}
}
})
然后它回傳姓名和學生陣列,但它包括那些城市不是 CA 的學生。
[
{
"_id": 101,
"name": "ABC",
"students": [
{
"age": 10,
"city": "CA",
"name": "john"
},
{
"age": 15,
"city": "KA",
"name": "danial"
}
]
},
{
"_id": 102,
"name": "DEF",
"students": [
{
"age": 20,
"city": "NY",
"name": "adam"
},
{
"age": 12,
"city": "CA",
"name": "johnson"
}
]
}
]
這是操場的鏈接 https://mongoplayground.net/p/NHHu3GahKoK
uj5u.com熱心網友回復:
您需要添加name: 1到投影中。
db.collection.find({
"students.city": "CA"
},
{
name: 1,
students: {
$elemMatch: {
"city": "CA"
}
}
})
示例 Mongo Playground
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/392579.html
上一篇:如何將cryptoniteRSA.PublicKey轉換為Base64格式?
下一篇:嘗試制作重定向頁面
