2013-09-27 26 views
5

Ben MongoDB dan $substr komutuyla bir toplanma boru hattı sorgusu inşa ediyorum ama değerler farklı içerdiğinden ben mgo sürücüsü ile onu git gerektirdiği dizi temsil etmek nasıl bilmiyorum içeren bir dizi temsil etmek (string, int). İşte Nasıl karışık türleri

javascript sorgusu:

[ {$group: {"_id": {"dt": {"$substr": ["$dt",0,6]}}}} ] 

Bunun endeksi 6.

endeksi 0 başlangıç ​​ve bitiş ile (toplama önceki safhasından) dt sonuna kadar olan alt almak olduğunu yapmaya çalışıyor

[]bson.M{"$group": bson.M{"_id": bson.M{"dt": bson.M{"$substr": ["$dt",0,6]}}}}} 

ama ["$dt",0,6] doğru bir temsili değil ve ben her şeyi denedik başarısız görünüyor: git

i aldık.

+0

, bunun için bir yapı sunmaya genellikle daha iyidir. Bu güvenlik yazıp diğerleri için anlamak için kod kolaylaştırır verir. – fuz

cevap

10

O türü []interface{} bir dilim kullanarak bu değerleri temsil edebilir: Eğer biraz kirli sözdizimi bulursanız

l := []interface{}{"$dt", 0, 6} 

, kolayca görünmesi için yerel bir türü tanımlayabilirsiniz güzel:

type list []interface{} 
    l := list{"$dt", 0, 6} 
Alacağınız verileri karışık türleri içeriyorsa