mongodb - 使用 golang 和 mongodb 进行顺序查询

标签 mongodb go sequential

想知道从 Golang 对 mongodb 进行顺序查询的最佳方法是什么。 示例假设您有:

result *bson.M
ids:=["543d171c5b2c12420dd016","543d171c5b2dd016"]
oids := make([]bson.ObjectId, len(ids))
for i := range ids {
  oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}
error:= c.Find(query).All(&result)

并且您想要获取 _ids 的输出并将其用作对另一个表的查询。 那么这是正确的吗?

query = bson.M{"_id": bson.M{"$in": result}}

最佳答案

下面是如何使用从其他查询返回的文档 ID 构建查询。

 var docs []bson.M
 if err := c.Find(query).All(&docs); err != nil {
    // handle error
 }
 docIDs := make([]interface{}, len(docs))
 for i := range docs {
    docIds[i] = docs[i]["_id"]
}
query = bson.M{"_id": bson.M{"$in": docIDs}}

关于mongodb - 使用 golang 和 mongodb 进行顺序查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26448537/

相关文章:

javascript - 函数返回一个 promise 而不是它应该返回的对象

javascript - Mongoose 保存与插入与创建

macos - Meteor 需要 sudo 才能运行

go - 使用 Go-Github 和 http.Transport 时如何设置 HTTP 请求 header ?

javascript - 使用 Express 和 MongoDB - 如何注销用户?

go - 如何使用 Go 将 float 格式化为字符串

http - 无法在golang中使用socks5代理-读取: connection reset by peer

c++ - 什么是线程间操作

concurrency - 请澄清VHDL中顺序和并发执行的概念

performance - 并行版本比golang中的串行版本慢得多