2013-09-27 47 views
5

我正在用MongoDB中的$substr命令構建一個聚合管道查詢,但我不知道如何使用mgo驅動程序在Go中表示它所需的數組,因爲它包含不同類型的值(string,int)。如何表示一個混合類型的數組

這是在JavaScript中查詢:

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

什麼,這是試圖與開始索引0和結束索引6

做的是得到 dt子串(從聚集的前一階段)

在走我的了:

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

["$dt",0,6]不是一個正確的表示,我嘗試一切似乎失敗。

+0

如果您獲得的數據包含混合類型,通常最好爲它推出一個結構。這給你類型安全,並使你的代碼更容易理解他人。 – fuz

回答

10

可以表示使用[]interface{}類型的片這些值:

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

如果發現語法有點髒,你可以很容易地定義局部型,使它看起來更好:

type list []interface{} 
    l := list{"$dt", 0, 6} 
相關問題