我正在使用Mongo DB c#driver 2, 我正在尝试按ID(多对多)加入2个收藏
Class A
{
public string id;
public string name;
public list<string> classBReferenceid; // <--- I want use this as the "keys" for the join
public list<B> myBs;
}
Class B
{
public string id; // <--- I use this as the "key" for the join
public string name;
}
在我的DB类中,“A”被保存而没有“myBs”的数据,我想在一次通话中从mongo中提取它。
我尝试使用Lookup功能:
IMongoCollection<A> mongoACollection = // already set in driver....
IMongoCollection<B> mongoBCollection = // already set in driver....
IAggregateFluent<A> results = _mongoACollection.Aggregate().
Lookup<A, B, A>(
mongoBCollection,
a => a.classBReferenceid,
b => b.Id,
a => a.myBs);
但它不起作用(不加入任何东西)可能是因为“classBReference”是一个列表而不是“id”。
如何使用查找按ID出现在另一个集合中的ID列表中的ID加入?
答案 0 :(得分:0)
这个功能是在MongoDb v3.3.4中引入的,但我的本地实例是通过Mongo2Go使用MongoDb 3.2,我用它来进行单元测试。
将本地实例升级到v3.3.4后,问题就解决了。