执行mgo.Pipe没有结果,包括$ out

时间:2018-03-26 16:12:39

标签: mongodb go mgo

我试图运行一个不返回任何结果的Pipe,因为最后一个管道运算符是$out

// { $out: "y" } 
pipeline := DB. C("x"). Pipe(stages). AllowDiskUse() 
result := []bson.M{}
err := pipeline.All(&result) 

当我运行管道时,我正在超时。我假设mgo正在等待结果被读取 - 永远。

1 个答案:

答案 0 :(得分:0)

解决。请致电All(&result)

,而不是致电Iter()

All会在一个从开头就为空的迭代器上调用Next,显然会导致超时。

Iter返回一个迭代器,它将被丢弃。没有拨打Next,没有超时。