"Applied Mathematics"の結果のみを配列として取得するには、このコレクションで$ filterを適用します。私はこのような配列の形で入力を提供しています。["Applied Mathematics"]を以下のコレクションに提供します。この目的のために
{
"_id" : ObjectId("58a95d81eead32e82932b535"),
"univisorEducation" : [
{
"educationLevel" : "BACHELOR",
"courseType" : "UNDERGRADUATE",
"year" : 2016,
"college" : ObjectId("58a936add48f2b502858a70d"),
"_id" : ObjectId("58a95eb2eead32e82932b541"),
"course" : [
"Anthropology",
"Biomedical Engineering",
"Applied Mathematics"
]
}
]
}
{
"_id" : ObjectId("58a9643deead32e82932b54b"),
"univisorEducation" : [
{
"educationLevel" : "DOCTORATE",
"courseType" : "GRADUATE",
"year" : 2020,
"college" : ObjectId("58a936afd48f2b502858b5e2"),
"_id" : ObjectId("58a96495eead32e82932b550"),
"course" : [
"Applied Mathematics",
"Applied Physics"
]
},
{
"educationLevel" : "MASTER",
"courseType" : "GRADUATE",
"year" : 2020,
"college" : ObjectId("58a936afd48f2b502858b9f7"),
"_id" : ObjectId("58a96495eead32e82932b54f"),
"course" : [
"Applied Mathematics"
]
}
]
}
私は以下、$プロジェクトで$フィルターを使用しています私の$フィルタコードは、問題は私だけ
{ "_id" : ObjectId("58a95d81eead32e82932b535"), "univisorEducation" : [ ] }
{
"_id" : ObjectId("58a9643deead32e82932b54b"),
"univisorEducation" : [
{
"educationLevel" : "MASTER",
"courseType" : "GRADUATE",
"year" : 2020,
"college" : ObjectId("58a936afd48f2b502858b9f7"),
"_id" : ObjectId("58a96495eead32e82932b54f"),
"course" : [
"Applied Mathematics"
]
}
]
}
この結果を取得していますということです
$filter: {
input: "$univisorEducation",
as: "univisorEducation",
cond: {
$setIsSubset: ["$$univisorEducation.course", courses]
}
}
です"_id"を伴うコレクション:ObjectId( "58a95d81eead32e82932b535")は、応用数学の結果を持つ必要があります。
あなたは何をしようとしていますか?サブセット操作は対称ではありません。期待される成果は? – Veeram
私は何をしたいですか配列の入力値に基づいて配列のフィールドデータをフィルタリングする –
あなたの質問は何ですか?あなたは最初のクエリを使用して期待される結果を得ています。なぜ2番目のクエリが全く異なるクエリでも同じ結果を返すことを期待していますか? – Veeram