Am trying to write the golang bson query for this mongodb query but cannot. Can anyone help? I can query mongo shell with the command
db.collection.find({"nfType": "SMF"},{"_id": 0,"ipv4Addresses": 1})
which gives the output that i want as
[{ "ipv4Addresses": ["198.51.100.1"]}]
Now am trying to write a golang bson for this query to get only the ipv4Addresses field as shown above but cannot. The document in the collection is of the form
{
"nfType": [
"SMF"
],
"nfStatus": [
"REG"
],
"sNssais": [
{
"sst": 1,
"sd": "sd1"
}
],
"nsiList": [
"NSI-ID1"
],
"ipv4Addresses": [
"198.51.100.1"
]
}
Just make one find Query and other one for filter and use these findQ and filter in your mongo connection
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)
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)