我正在与Golang和Mongodb合作。我正在为Go使用https://godoc.org/gopkg.in/mgo.v2 mongo驱动程序。我想在查询中写视图,但是发现没有为此定义功能。 Mongo Views是版本3.4中提供的最新功能。我也在其他驱动程序中检查了它:
https://godoc.org/github.com/mongodb/mongo-go-driver/mongo
它甚至不在那里。如何在驱动程序中获得此功能?
答案 0 :(得分:2)
我想在查询中写视图,但是我发现没有为此定义功能。
自MongoDB v3.4起,支持从现有集合或其他视图创建只读视图。
要创建视图,您可以执行create()数据库命令。例如:
db.runCommand( { create: <view>,
viewOn: <source>,
pipeline: <pipeline>,
collation: <collation>
} );
例如,如果您有一个来自mongo shell的create
视图命令,如下所示:
db.runCommand( {create:"testview",
viewOn: "collectionName",
pipeline: [ {"$project":{ "fieldA":1 } } ]
});
使用mongo-go-driver(当前版本为0.0.9),可以使用Go编写上述create view命令,如下所示:
_, err = database.RunCommand(
context.Background(),
bson.NewDocument(bson.EC.String("create", "testview"),
bson.EC.String("viewOn", "collectionName"),
bson.EC.ArrayFromElements(
"pipeline", bson.VC.DocumentFromElements(
bson.EC.SubDocumentFromElements(
"$project", bson.EC.Int32("fieldA", 1),),
),
),
),
)