2014-10-19 126 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