用c#从MongoDB中检索整个数组
本文关键字:数组 检索 MongoDB | 更新日期: 2023-09-27 18:07:31
我试图检索数组内的所有文档,我想把所有这些在c#中的列表。
我有一个名为Subject的类,其中包含一个名为follower的用户列表。它是这样定义的:
public class Subject
{
public Guid _id { get; set; }
public List<User> Followers { get; set; }
}
,我使用这个函数:
await db.Subjects.Find( FILTER HERE ).ToListAsync();
我似乎无法让它工作,任何帮助将不胜感激!
编辑:这是我的文档结构的主题
{
"_id" : BinData(3,"/mRuH9AiWEiEJV2Ad0UAVg=="),
"name" : "Subject test",
"address" : {
"Street" : "Street Test",
"Postalcode" : "1234AB",
"City" : "City Test",
"CountryCode" : "NL",
"Telephone" : "0612345678",
"Coordinates" : {
"Longitude" : "1234",
"Latitude" : "1234"
}
},
"Followers" : [
DBRef("Name test", BinData(3,"uwXp/avTGEeeaR0muzYvOA==")),
DBRef("Name test", BinData(3,"dK15dIEW302RWg/F1b+rtg=="))
],
"Chefs" : [ ],
"Owners" : [ ]
}
和我的用户结构
{
"_id" : BinData(3,"uwXp/avTGEeeaR0muzYvOA=="),
"name" : "Name test",
"loginDate" : ISODate("0001-01-01T00:00:00Z"),
"followers" : [ ]
}
是抛出错误还是只是空的
var MySubjets = await db.Subjects.Find( FILTER HERE ).ToListAsync();
必须返回与过滤器匹配的主题数组。
这是你想要的吗?或者您正在寻找"追随者"数组?
var MySubject = await db.Subjects.Find( FILTER HERE ).FirstOrDefault();
foreach (User MyFollower in MySubject.Followers)
{
//do your stuff...
}
但另一个主要的事情,是否有数据在集合和字段对应的类属性?如果没有,则必须使用classmappings
对于dbref,执行如下操作:
var MySubject = await db.Subjects.Find( FILTER HERE ).FirstOrDefault();
foreach (var MyRelatedDocument in MySubject.Followers)
{
User MyFollower = db.FetchDBRefAs<User>(MyRelatedDocument);
//do your stuff...
}