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

Вот как построить запрос, используя идентификаторы документов, возвращенные из какого-либо другого запроса.

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

Смежные вопросы