假设我有一个包含以下文档的集合:
...
{
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
答案 0 :(得分:1)
我认为最好的方法是在应用程序方面,使用多个查询。您可能希望运行查询以匹配e.event_type = 100的所有文档,如下所示:
db.collection.find({"e.event_type" : 100});
然后,您将必须编写一些逻辑来迭代结果并运行更多查询以查找具有正确值f.event_counter的文档。
我不确定使用MongoDB的聚合框架可以做到这一点。如果可能的话,这将是一个非常复杂的查询。