0

假设我有一个包含以下文档的集合:

...
{
   event_counter : 3 
   event_type: 50
   event_data: "yaya"
}
{
   event_counter : 4 
   event_type: 100
   event_data: "whowho"
}
...

是否可以要求:

for each document, e where e.event_type == 100
    get me any document f where 
       f.event_counter = e.event_counter+1

或等效地:

find each f, where f.event_counter==e.event_counter+1 && e.event_type==100
4

1 回答 1

1

我认为解决此问题的最佳方法是在应用程序端,使用多个查询。您可能希望运行查询以匹配所有 e.event_type = 100 的文档,如下所示:

db.collection.find({"e.event_type" : 100});

然后,您必须编写一些逻辑来遍历结果并运行更多查询以查找具有正确 f.event_counter 值的文档。

我不确定是否可以使用 MongoDB 的聚合框架来做到这一点。如果可能的话,这将是一个相当复杂的查询。

于 2013-09-19T20:53:53.760 回答