Я не могу понять, как правильно использовать $literal. Я использую пакеты mgo.v2 и mgo.v2/bson.
db.store.aggregate([
{"$project":{
"location":{
"type":{"$literal":"Point"},
"coordinates":["$longitude","$latitude"]
}}
},])
Я использовал приведенный выше код для извлечения данных в mongodb и отлично работает. Это дает мне результат
{ "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"}}}}})
но это также выдает мне ошибку
паника: этот объект уже является выражением оператора и не может использоваться в качестве выражения документа (в «координатах»)
моя полная работа показана по ссылке ниже моя работа здесь, пожалуйста, помогите мне решить эту проблему. Спасибо