gpt4 book ai didi

go - 从集合中选择嵌套字段

转载 作者:IT王子 更新时间:2023-10-29 02:10:22 24 4
gpt4 key购买 nike

我正在尝试从 Mongo 集合中的嵌套对象中获取单个字段。

我需要获取所有符合条件的标签。我能够查询并获取整个对象,但无法获取标签列表或数组。

// Content struct
type Content struct {
ID bson.ObjectId `json:"id" bson:"_id"`
PrimaryMarket string `json:"primary_market" bson:"primary_market"`
Title string `json:"title" bson:"title"`
Description string `json:"description" bson:"description"`
Owner User `json:"owner" bson:"owner"`
IsActive bool `json:"is_active" bson:"is_active"`
File string `json:"file" bson:"file"`
FileName string `json:"file_name" bson:"file_name"`
FileType string `json:"file_type" bson:"file_type"`
FileSize string `json:"file_size" bson:"file_size"`
FileExt string `json:"file_ext" bson:"file_ext"`
OriginalHeight int `json:"original_height" bson:"original_height"`
OriginalWidth int `json:"original_width" bson:"original_width"`
Height int `json:"height" bson:"height"`
Width int `json:"width" bson:"width"`
Tags []Tag `json:"tags" bson:"tags"`
Flags []Flagged `json:"flags" bson:"flags"`
CreatedDate time.Time `json:"created_date" bson:"created_date"`
}

// Tag struct
type Tag struct {
ID bson.ObjectId `json:"id" bson:"_id"`
Tag string `json:"tag" bson:"tag"`
Market string `json:"market" bson:"market"`
CreatedBy User `json:"created_by" bson:"created_by"`
CreatedDate time.Time `json:"created_date" bson:"created_date"`
IsActive bool `json:"is_active" bson:"is_active"`
}

我的查询

var result []struct {
Tags []struct {
Description string `bson:"description"`
} `bson:"tags"`
}

find := app.Session.DB("mydb").C("content").Find(bson.M{"primary_market": "Photos", "tags.description": &bson.RegEx{Pattern: query, Options: "i"}}).All(&result)

我试过使用点符号的 Select 语句,但这似乎不起作用。任何帮助将不胜感激。

谢谢

最佳答案

MongoDB 将为上述查询生成一个对象数组,如下所示:

{ "_id" : ObjectId("5a5c401ddbff3fdea15082ee"), "tags" : [ { "tag" : "query" }, { "tag" : "something" } ] }
{ "_id" : ObjectId("5a5c423ddbff3fdea15082f0"), "tags" : [ { "tag" : "something" }, { "tag" : "query" } ] }

因此,为了正确解码这个对象数组,result 变量应该如下所示:

var result []struct {
Tags []struct {
Tag string `bson:"tag"`
} `bson:"tags"`
}

关于go - 从集合中选择嵌套字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48254402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com