正在尝试为此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"
]
}
答案 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)