I need to write a query in golang with mgo, here's the query in the mongo:
db.some.aggregate([
{$match: { "data.id": "11111" }},
{$project: {
_id : 0,
url : { $concat: [ "https://www.someurl.com/","$data.aID" ]},
items :{
"$map":{
"input":"$data.items",
"as":"it",
"in":{
"item_title":"$$it.title",
"item_id":"$$it.id"
}}}}])
I will be grateful if you will help in this problem.
// I apologize for the incorrectly posed question, in the future I will follow the instructions, my problem was with $concat
The syntax here is tricky because it's similar to JSON but different enough to be confusing.
In particular, note that arrays use curly brace delimiters []bson.M{...}
and the $concat
value is an array of strings []string{...}
:
query := []bson.M{ // NOTE: slice of bson.M here
bson.M{
"$match": bson.M{"data.id": "11111"},
},
bson.M{
"$project": bson.M{
"_id": 0,
"url": bson.M{
"$concat": []string{ // NOTE: slice of strings here
"https://www.someurl.com/",
"$data.aID",
},
},
"items": bson.M{
"$map": bson.M{
"input": "$data.items",
"as": "it",
"in": bson.M{"item_title": "$$it.title", "item_id": "$$it.id"},
},
},
},
},
}