【发布时间】:2019-08-16 19:44:39
【问题描述】:
我使用 mongodb 作为数据库。我可以使用命令从命令行查询数据库
db.nfinstances.distinct("ipv4Addresses",{"nfType":"AMF", "amfInfo.amfSetId": "3fa85f64-5717-4562-b3fc-2c963f66af33"})
这给了我想要的 ip 地址 [x.x.x.x] 输出。
但是,如果我使用 golang 查询进行查询
var SliceIP []NfInstance
db.C(COLLECTION).Find(bson.M{
"nfType": "AMF",
"amfInfo.amfSetId": "3fa85f64-5717-4562-b3fc-2c963f66af33"}
).Distinct("ipv4Addresses", &SliceIP)
我得到一个空数组,而不是数组中的 IP 地址字符串。在数据库中,我将 json 文档作为
{
"nfinstanceID": "3fa85f64-5717-4562-b3fc-2c963f66af33",
"nfType": [
"AMF"
],
"nfStatus": [
"REGISTERED"
],
"sNssais": [
{
"sst": 1,
"sd": "sd1"
}
],
"nsiList": [
"string"
],
"ipv4Addresses": [
"198.51.100.300"
],
"allowedNssais": [
{
"sst": 1,
"sd": "sd1"
}
],
"amfInfo": {
"amfSetId": "3fa85f64-5717-4562-b3fc-2c963f66af33",
"taiList": [
{
"plmnId": {
"mcc": "244",
"mnc": "38"
},
"tac": "string"
}
],
"n2InterfaceAmfInfo": {
"ipv4EndpointAddress": [
"198.51.100.105"
]
}
}
}
mongodb命令行查询是这样的
> db.nfinstances.distinct("ipv4Addresses",{"nfType":"AMF", "amfInfo.amfSetId": "3fa85f64-5717-4562-b3fc-2c963f66af33"})
mongodb Output:
[ "198.51.100.300" ]
我期望使用 bson.M 的输出相同
谁能帮忙找出问题?
【问题讨论】:
-
你使用的是哪个 mongo 包?
-
这些是我在 go 代码中的导入。 “gopkg.in/mgo.v2”和“gopkg.in/mgo.v2/bson”