2012-01-18 53 views
2

我在mongodb.I中有两个集合,它是从两个独立工作的gud中收集数据。但是当我使用skip和take方法实现分页时,我从这两个集合中获取数据,如在mongodb中使用c合并两个集合

paging = new Pagination() { CurrentPage = pageNumber, ItemsPerPage = 16 }; 
var results = dataTable.FindAs<TradeInfo(queryAll).Skip(paging.Skip).Take(paging.Take).ToList<TradeInfo>(); 
paging.TotalCount = Convert.ToInt32(dataTable.Find(query).Count()); 
var results2 = new List<TradeInfo>(); 
if (dataTable2 != null) 
{ 
    results2 = dataTable2.FindAs<TradeInfo(queryAll).Skip(paging.Skip).Take(paging.Take).ToList<TradeInfo>(); 
    int count = Convert.ToInt32(dataTable2.Find(query).Count()); 
    paging.TotalCount = paging.TotalCount + count; 
    results.AddRange(results2); 
} 

我给结果的ItemsSource到DataGrid和我收到总共32个项目每页。 我该怎么做,Mongodb中是否有任何连接概念。两个集合列是相同的。 我该怎么办? 请帮我这样做....

感谢, 扬

+0

请问这个问题的答案:http://stackoverflow.com/questions/2350495/how-do-i-perform-the-sql-join-equivalent-in-mongodb有帮助吗? – 2012-01-18 07:54:57

+0

没有在两个集合中我有相同的列名称但不是相同的数据它有点像连接两个字符串连接两个集合 – jan 2012-01-18 09:14:28

回答

0

我相信你正在寻找在这里比加入更多联盟。

不幸的是,MongoDB中没有这样的概念。如果您的分页依赖于查询(在这种情况下它看起来可能是),那么您唯一真正的选择是创建和维护一个合并的集合,每次将文档添加或保存到这两个集合中的任何一个集合时都会进行更新。然后,您可以在将查询应用于单个集合后跳过并采用该集合。