【问题标题】:Mongo random records on golanggolang上的mongo随机记录
【发布时间】:2019-09-28 15:13:12
【问题描述】:

我正在尝试从我的 mongodb 集合中检索随机记录。 我正在使用golangmongo-go-driver

pipeline := []bson.E{bson.E{"$sample", bson.E{"size", 10}}}
collection.Aggregate(context.TODO(), pipeline)

聚合返回我这个错误:

A pipeline stage specification object must contain exactly one field.

我试过$sizesize

有没有可能mongo-go-driver 不支持$sample

【问题讨论】:

  • 在这种情况下,首先生成一个在 mongodb shell 中工作的版本要容易得多。然后你就知道这确实是可能的,翻译它只是忙碌的工作。
  • 另外,我自己没有使用过mongodb go驱动,但是从查看文档看来,您需要将那些bson.E推到bson.D中。或者使用bson.A 而不是[]bson.E

标签: mongodb go aggregate sample querying


【解决方案1】:

改为使用下面

pipeline := []bson.D{bson.D{{"$sample", bson.D{{"size", 10}}}}}

bson.D 代表 BSON 文档,bson.E 代表 BSON 元素。聚合是 BSON 文档的数组。更多详情请访问https://godoc.org/go.mongodb.org/mongo-driver/bson

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-10
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 2015-12-20
    相关资源
    最近更新 更多