[英]retrieving entire array from MongoDB with C#
我正在尝试检索数组中的所有文档,并且想将所有这些文档放入C#的列表中。
我有一个名为Subject的类,其中包含一个用户列表,称为关注者。 它的定义如下:
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...
}
但是另一件事是,集合中是否有数据,并且字段是否对应于类属性? 不需要时,您必须使用类映射
对于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...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.