【发布时间】:2021-01-13 19:39:39
【问题描述】:
我正在尝试使用 VB.Net(类似于 C#.Net)从 MongoDB 集合中返回不同文件类型的列表。由于每个文档都有一个唯一的id,无论文件类型如何,代码都会返回重复项。我在这里想念什么?我试过GroupBy,但没用。
Public Function GetAllFileTypes() As List(Of UXFiles)
Dim m_List As New List(Of UXFiles)
Dim db As IMongoDatabase = DatabaseService.GetDBcontext()
Dim files = db.GetCollection(Of BsonDocument)("Files").Find(New BsonDocument).ToList
m_List = files.Select(Function(_file) ConvertFile(_file)).Distinct().ToList()
Return m_List
End Function
Private Function ConvertFile(fileDocument As BsonDocument) As UXFiles
Dim file As New UXFiles With {
.ID = If(fileDocument.Contains("id"), fileDocument.GetElement("id").Value.ToString, ""),
.Name = If(fileDocument.Contains("name"), fileDocument.GetElement("name").Value.ToString, ""),
.Type = If(fileDocument.Contains("type"), fileDocument.GetElement("type").Value.ToString, "")
}
Return file
End Function
【问题讨论】:
-
Distinct 作用于查询结果集中的整个对象/记录。如果您要查找不同文件名的列表,只需查询文件名属性
-
或者不确定它是否有效,但也许是 Distinct 的自定义谓词?
-
@Hursey 你能提供一些示例代码或sn-p 你的意思吗?
标签: mongodb vb.net mongodb-query mongodb-.net-driver