0
我正在使用mgo庫在golang中構建bson地圖。我想重構一些代碼以避免重複。如何根據輸入創建bson地圖
考慮一下:
bson.M {
"$match" : bson.M{
"xyz" : "abc",
},
"$id_1" : value_1,
}
和類型的其他BSON地圖:
bson.M {
"$match" : bson.M{
"xyz" : "abc",
},
"$id_2" : value_2,
}
我怎樣才能將二者結合起來(從功能和回報建立bson.M,值1/2 PARAMS to this func)根據value_1是否爲空字符串或value_2爲空字符串使用。
例如:如果我建立以下功能。我的目的是通過調用buildBsonObject(「123」,「」)來構建第一種類型的地圖(參見上文),並通過調用buildBsonObject(「」,「456」)來構建第二種地圖。
func buildBsonObject (value_1 string, value_2 string) {
return bson.M {
"$match" : bson.M{
"xyz" : "abc",
},
"$id_1" : value_1,
"$id_2" : value_2,
}
}
如果我做了以下(見功能buildBsonObject),那麼當值_1空字符串,我蒙戈聚集查詢將行不通,因爲它會當作ID_1是「」,而我打算只已在ID_2我的bson對象。
關於如何做到這一點的任何建議。謝謝。
感謝您的答案,這是我也認爲應該工作,但我有一個錯誤(在我發佈之前它在這裏),其實我有多層次的BBS地圖,我犯了一個錯誤,我認爲它不會像那樣工作:( –