mongodb - 如何在go mongo驱动器中将聚集选项与查找选项一起使用

标签 mongodb go

我试图找到一种在go mongo驱动程序中将聚合选项'lookup'与find选项一起使用的方法。
文档没有直接指示如何将聚合与go mongo驱动程序一起使用。

是否有任何解决方案可以直接将聚合选项与查找选项一起使用。

最佳答案

是否有任何解决方案可以直接将聚合选项与查找选项一起使用。

MongoDB Aggregation Pipeline不接受与MongoDB collection.find()选项相同的选项。不幸的是,您不再需要使用哪种find()选项。如果您要指定find()projection选项,请参见$project aggregation pipeline stage。您可以在$lookup stage之后添加此阶段。

文档没有直接指示如何将聚合与go mongo驱动程序一起使用。

mongo-go-driver中的Aggregate方法接受pipeline参数,该参数应该是文档的一片,每个文档代表一个管道阶段。 $lookup将是这些阶段之一。例如管道[{$lookup: {from: "foo", localField:"x", foreignField:"y", as:"bar"}}]将在Go驱动程序中编写为:

coll.Aggregate(ctx, mongo.Pipeline{
    {{"$lookup", bson.D{
       {"from", "foo"}, 
       {"localField", "x"}, 
       {"foreignField", "y"},
       {"as", "bar"}
    }}},
})

关于mongodb - 如何在go mongo驱动器中将聚集选项与查找选项一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58334220/

相关文章:

java - Storm 拓扑的 Mongo 连接池

docker - 我应该安装什么包而不是 libpcre++-dev 在 Alpine Golang 中使用 C 代码?

amazon-web-services - AWS Cognito InitiateAuth 通过 Lambda 函数导致错误

javascript - MongoDB 从聚合中排除某些文档

javascript - Node.JS 作业/后台进程和高可用性

mongodb - $cond 中存在 $exists 的条件分组

php - Mongodb更新多个具有不同值的文档

amazon-web-services - beego running on AWS 发行

go - Google Cloud Functions的 vendor 依赖性对性能有好处吗?

go - 使用 Go 的堆栈集合声明堆栈时遇到问题