2
{
"_id" : NUUID("f5050a5d-b3be-4de6-a135-a119436fb511"),
"CoursesData" : [
{
"Name" : "Naturgræs",
"Value" : 1
}
],
"FacilityType" : {
"_id" : NUUID("a1b4844b-518b-40e2-8aa5-8ee399ac2d4e")
}
}
私はCourseData
の私のオブジェクト配列内のフィールドName
は異なる値を使用してリストを取得したいの取得します。フィルタリングされたものはFacilityType._id
です。私は$facet
とdistinct
演算子の両方を使ってみましたが、オブジェクト配列が好きではないようです。は、オブジェクト配列にMongoDBは異なる値
:
FacilityType (a1b4844b-518b-40e2-8aa5-8ee399ac2d4e),
CourseData: [Name1, Name2, Name3]
更新
下記の答えから、誰もがする必要がある場合、これは、あなたがC#のドライバでそれを行う方法です同じことをする。
FieldDefinition<FacilityDocument, string> field = "CoursesData.Name";
var result = FacilityCollection.Distinct(field, Builders<FacilityDocument>.Filter.Eq(x => x.FacilityType.ID, new Guid("a1b4844b-518b-40e2-8aa5-8ee399ac2d4e"))).ToList();
フェリックスさん、ありがとう、私は以前、私は別の同じオプションを試したときに私の配列のスペルが間違っていることに気付きました...こんにちはmonday! – mp1990