2014-10-19 131 views
0

想知道从Golang进行顺序查询以获得mongodb的最佳方式是什么。 例子可以说你有:使用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}} 

回答

0

以下是如何使用从其他查询返回的文档的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}} 
+0

虽然由于make界面不起作用,代码是错误的。我理解了这个概念,现在它的工作 – Daemon1313 2014-10-19 22:53:53