как написать Голанг бсон- MongoDB - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь написать запрос golang bson для этого запроса mongodb, но не могу.Кто-нибудь может помочь?Я могу запросить оболочку mongo с помощью команды

db.collection.find({"nfType": "SMF"},{"_id": 0,"ipv4Addresses": 1})

, которая выдает желаемый результат как

[{ "ipv4Addresses": ["198.51.100.1"]}]

Теперь я пытаюсь написать golang bson для этого запроса, чтобы получить только ipv4Addressesполе, как показано выше, но не может.Документ в коллекции имеет вид

{
    "nfType": [
      "SMF"
    ],
    "nfStatus": [
      "REG"
    ],
    "sNssais": [
      {
        "sst": 1,
        "sd": "sd1"
      }
    ],
    "nsiList": [
      "NSI-ID1"
    ],
    "ipv4Addresses": [
      "198.51.100.1"
    ]
  }

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

просто сделайте один поиск Query и другой для фильтра и используйте эти findQ и filter в вашем монго-соединении

    findQ := bson.M{"nfType": "SMF"}
    filter := bson.M{"_id": 0, "ipv4Addresses": 1}
    data:=[]interface{}// i am using interface. You can use your actual object
mongo.DB(DBName).C(collectionName).Find(findQ).Select(filter).All(&data)
0 голосов
/ 29 апреля 2019
session, err := mgo.Dial(mgo_url)
if err != nil {
    panic(err)
}
c := session.DB(db).C(collection)
defer session.Close()

result := make([]map[string]interface{}, 0)
err = c.Find(bson.M(map[string]interface{}{"nfType": "SMF"})).All(&result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...