我無法理解如何正確使用$字面值。我正在使用mgo.v2和mgo.v2/bson軟件包。
db.store.aggregate([
{"$project":{
"location":{
"type":{"$literal":"Point"},
"coordinates":["$longitude","$latitude"]
}}
},])
我使用上述代碼獲取MongoDB中數據和工作fine.It給我的結果
{ "location":{
"type":"Point",
"coordinates":[77.587073,12.958794]
}}
我試圖使用相同的在golang和它下面示出
pipe :=DB.C("store").Pipe([]bson.M{
{"$project":bson.M{"location":
bson.M{"type":
bson.M{"$literal":"Point"},"coordinates":[]interface{}{"$longitude","$latitude"}}}}}
上面的代碼,我拋出一個錯誤
恐慌:壞查詢:BADVALUE:點必須是一個數組或對象
,所以我代替它像這樣
pipe :=DB.C("store").Pipe([]bson.M{
{"$project":bson.M{"location":
bson.M{"$literal":
bson.M{"type":"Point"},"coordinates":[]interface{}{"$longitude","$latitude"}}}}})
但是這也引發了我一個錯誤
恐慌:此對象已經是一個運算符表達式,並且不能被 用作文檔表達式(在「座標」處)
我的完整工作顯示在下面的鏈接 my work is here 請幫我解決這個問題。 謝謝
你能展示更多的代碼嗎,因爲你的第一個版本適合我? – icza
我按照你的要求添加了我的作品。我在將代碼從MongoDB查詢轉換爲Golang時遇到問題。 –