我有一個看起來像這樣的資料集合
{
"part": [
{ "a": "1", "b": "a" },
{ "a": "23", "b": "b" },
{ "a": "4", "b": "c" },
]
}
我想要的是一種搜索檔案的方法,其中所有a部分的連接等于我正在尋找的搜索。
例如1234應該匹配上面的檔案,但124不應該。
這可以用 MongoDB 實作嗎?
uj5u.com熱心網友回復:
您可以使用聚合框架來做到這一點:
- $match與$eq - 僅過濾陣列的連接
a屬性part等于輸入字串的檔案。 - $reduce和$concat -為每個檔案連接陣列的所有
a屬性part。
db.collection.aggregate([
{
"$match": {
"$expr": {
"$eq": [
"1234",
{
"$reduce": {
"input": "$part",
"initialValue": "",
"in": {
"$concat": [
"$$value",
"$$this.a"
]
}
}
}
]
}
}
}
])
作業示例
uj5u.com熱心網友回復:
您可以使用聚合與$reduce連接字串然后$match過濾您的字串。
這里是操場。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/386973.html
下一篇:獲取計數并與貓鼬中的回應合并
