我有以下JSON如何从JSON数组利用golang从MongoDB的
我想提取的特定Data
从需求阵列基于Id
价值得到嵌套值。 如果"Data" = "String123"
它应该显示“数据”为[“WED”]。
我想这个代码
但我不管得到的Id
所有值。
我有以下JSON如何从JSON数组利用golang从MongoDB的
我想提取的特定Data
从需求阵列基于Id
价值得到嵌套值。 如果"Data" = "String123"
它应该显示“数据”为[“WED”]。
我想这个代码
但我不管得到的Id
所有值。
如果我找不到你,你在“clOfferMaster”集合中有一条记录,并且你试图从嵌套集合“Eligibility”中获取数据。这可能不是处理数据的典型方式。
如果你调整你的数据如下:
[
{
"ComponentId" : "SessionDayCheck",
"ConfigData" : [
"WED"
]
},
{
"ComponentId" : "TransDayCheck",
"ConfigData" : [
"WED",
"THU"
]
},
{
"ComponentId" : "SessionTransCheck",
"ConfigData" : ""
}
]
它你可以做下面的查询这种情况下
c := session.DB("offerengine2").C("clOfferMaster")
var result struct {
ConfigData []string "ConfigData"
}
err = c.Find(bson.M{"ComponentId": "SessionDayCheck"}).One(&result)
if err != nil {
log.Fatal(err)
}
fmt.Println("Result:", result)
// Result: {[WED]}
查询的结果是文档的集合。如果将组件集合存储在一个文档中,即使使用查询中的组件字段,结果仍然会返回整个文档(如果它与筛选器匹配)。
MongoDB支持选择你想要或不想要的属性,但是你不能根据它们的属性排除数组元素。
请注意,MongoDB支持仅返回数组的一部分($slice (projection)),但这是基于索引的,并不是您想要的。
您必须手动检查退回文档的组件(Eligibility
)并搜索所需的组件。或者查看文档的内容,您应该将其分割以将每个组件存储为单独的文档,然后您可以过滤它们并单独检索它们。