通过不同的元素从MongoDB和c#获取整个文档

本文关键字:获取 文档 MongoDB 元素 | 更新日期: 2023-09-27 18:15:48

我很难理解我应该如何写一些MongoDB查询。可能是我的头脑太习惯关系型数据库了。

无论如何,我想检索所有文档(整个文档,而不是元素的子集),但每个元素的不同值只检索一个。

例如,我在集合中有以下3个文档:

{
  "person": {
     "name": "james",
     "age": "21",
     "city": "London"
  }
},
{
  "person": {
     "name": "edith",
     "age": "18",
     "city": "London"
  }
},
{
  "person": {
     "name": "steve",
     "age": "29",
     "city": "Berlin"
  }
}

我想检索整个文档,但只具有不同的"city"元素值。其余的数据应该在那里(因此我不能只对它们进行$group),返回子集中的哪个文档无关紧要。

所以期望的输出应该是(如果我们总是使用具有不同值的第一个文档):(第一个文档也可以是edith,没关系)

{
  "person": {
     "name": "james",
     "age": "21",
     "city": "London"
  }
},
{
  "person": {
     "name": "steve",
     "age": "29",
     "city": "Berlin"
  }
}

明白了吗?

(虚拟数据,但问题是一个真实的)

通过不同的元素从MongoDB和c#获取整个文档

我相信你要找的是:

GetCollection<Person>("person").DistinctAsync("person.city",filter)