我有两个
IMongoCollection
S持有文件类型
Person
和
Animal
分别是。
public class Person
{
public Guid PersonId { get; set; } = Guid.NewGuid();
public Guid PetId { get; set; }
}
public class Animal
{
public Guid AnimalId { get; set; } = Guid.NewGuid();
public bool IsMammal { get; set; }
}
...
Animal bootsTheMonkey = new Animal() { IsMammal = true };
Person doraTheExplorer = new Person() { PetId = bootsTheMonkey.AnimalId };
我试图写一个查询,找到“所有宠物是哺乳动物的人”。
var query =
from pDoc in PersonDocumentCollection.AsQueryable()
where !pDoc.PetId.Equals(Guid.Empty)
join aDoc in AnimalDocumentCollection.AsQueryable() on pDoc.PetId equals aDoc.AnimalId
where aDoc.IsMammal
select pDoc;
尽管此查询不正确,但错误消息表明
$project或$group不支持{document}。
从搜索来看,这个错误似乎是由于
where aDoc.IsMammal
,更具体地说,使用
aDoc
在…之内/之后
join
(基于此
SO question
)中。尽管我不完全确定这是否是问题所在。
总的来说我想
参加
二
伊蒙戈收藏
第一个文档的字段值为
BsonId
来自另一个集合的文档。然后,一旦加入,我想首先从第一个集合中获取文档,然后在第二个集合中获取字段的值。