-1

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

  • 5
    Stack overflow is not a free code design and writing service. Please show us what you have attempted and explain why it is wrong. – Dragonthoughts Aug 07 '18 at 13:08
  • I'm sorry, to be more precise, I do not understand how to transfer $concat in golang, its always sees a syntax error I'm doing like this : – Vladimir Loct Aug 07 '18 at 13:24
  • 3
    @VladimirLoct Please add the error you are getting along with the code you have tried in golang to accomplish that. – Himanshu Aug 07 '18 at 13:25
  • @Dragonthoughts bson.M{"$concat":bson.M{["https ://www .someurl.com/", "$data.aID"]}} but its wrong – Vladimir Loct Aug 07 '18 at 13:25

1 Answers1

1

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"},
        },
      },
    },
  },
}
maerics
  • 151,642
  • 46
  • 269
  • 291