Spring FrameworkプロジェクトのMongoDBの配列から要素を取得しようとしています。Springフレームワークのサブドキュメント配列フィールドのフィルタ配列
私はMongoDBシェルの解決策を見つけましたが、Spring.data.core.aggregationで実装する方法がわかりません。集計演算子の1つ@addFieldsはSpringではサポートされていません。
この@addFieldを置き換える方法や、別の方法で実装する方法を教えてもらえますか?どうもありがとうございます!!!
MongoDBのサンプルデータ:
{
"_id" : 15,
"items" : [
{
"columns" : [
{
"title" : "hhh",
"value" : 10
},
{
"title" : "hahaha",
"value" : 20
}
]
},
{
"columns" : [
{
"title" : "hiii",
"value" : 50
}
]
}
]
}
期待される結果:
{
"_id" : 15,
"items" : [
{
"columns" : [
{
"title" : "hahaha",
"value" : 20
}
]
},
{
"columns" : []
}
]
}
MongoDBのシェルのための溶液:
let value = "hahaha";
db.coll.aggregate([
{
"$addFields": {
"items": {
"$map": {
"input": "$items",
"as": "item",
"in": {
"columns": {
"$filter": {
"input": "$$item.columns",
"as": "elt",
"cond": { "$eq": [ "$$elt.title", value ] }
}
}
}
}
}
}
}
])
MongoDBのバージョン:3.4.1
春のバージョン:1.4.3
をご提案いただきありがとうございますが、バージョンを変更することは、私にとっては複雑すぎます。 – Spider
春のブート1.4.3は春のmongo db 1.9.6のバージョンがあります。だから最初のオプションはあなたのために働く必要があります。試しましたか ? – Veeram