如何编写Golang bson-MongoDB

时间:2019-04-29 09:38:05

标签: go

正在尝试为此mongodb查询编写golang bson查询,但不能。有人可以帮忙吗? 我可以使用命令查询mongo shell

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 个答案:

答案 0 :(得分:1)

  

只需创建一个查找查询,另一个进行过滤,并在mongo连接中使用这些findQ和过滤器

    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)

答案 1 :(得分:0)

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)