我正在尝试检索数组中的所有文档,并且我希望将所有这些文档放在C#中的列表中。
我有一个名为Subject的类,其中包含一个名为followers的用户列表。它的定义如下:
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" : [ ]
}
答案 0 :(得分:0)
是抛出错误还是只是空?
var MySubjets = await db.Subjects.Find( FILTER HERE ).ToListAsync();
必须返回与您的过滤器匹配的主题数组。
这就是你想要的吗?或者您正在寻找&#34;追随者&#34;数组?
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...
}