我正在尝试运行一个不返回任何结果的管道,因为最后一个管道运算符是 $out
。
// { $out: "y" }
pipeline := DB. C("x"). Pipe(stages). AllowDiskUse()
result := []bson.M{}
err := pipeline.All(&result)
运行管道时出现超时。我假设 mgo 正在等待结果被读取——永远。
最佳答案
已解决。不要调用 All(&result)
,而是调用 Iter()
。
All
会在从一开始就为空的迭代器上调用 Next
,显然会导致超时。
Iter
返回一个迭代器,它将被丢弃。没有调用 Next
,没有超时。
关于mongodb - 执行 mgo.Pipe 没有结果,包括 $out,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49496003/