gpt4 book ai didi

mongodb - 从对象数组 MongoDB 获取不同的值

转载 作者:可可西里 更新时间:2023-11-01 10:41:06 26 4
gpt4 key购买 nike

{
"_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 过滤。我尝试同时使用 $facetdistinct 运算符,但它似乎不喜欢对象数组。

我的结果应该是这样的(或类似的):

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();

最佳答案

您可以使用 distinct() .它将从匹配查询的文档中返回特定字段的不同元素

例如,如果您想要设施 "a1b4844b-518b-40e2-8aa5-8ee399ac2d4e" 的名称字段的不同值,请运行此查询:

db.collection.distinct("CoursesData.Name", {"FacilityType._id": "a1b4844b-518b-40e2-8aa5-8ee39ac2d4e"})

它将返回:

[ "Naturgræs", ... ]

关于mongodb - 从对象数组 MongoDB 获取不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42621769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com