mongodb - 查询有关 Go 项目中对象数组的 MongoDb 集合

标签 mongodb go slice

Go 项目中,我将一些数据存储在 MongoDb 集合中:

{
    _id:ObjectId("631f0752da589137a71687f6"),
    target: { roomId: '11' }
}

{
    _id:ObjectId("43150752da589137a71687f6"),
    target: { roomId: '12' }
}
.
.
.

我有一个目标对象数组,我想检查数据库,看看数据库中的 roomId 是否等于我的对象数组值之一。

我的目标对象数组:

 userRooms:[{"roomId":"12"}, {"roomId":"13"}, {"roomId":"14"}]
 

我创建一个仅包含房间 ID 的新数组,如下所示:

var roomIds []string
for _, v := range RESPONSE.USERROOMS {
    roomIds = append(roomIds, v.ROOMID)
}

我这样做:

bson.M{ "target": bson.M{"roomId":bson.M{"$in": roomIds }}}}}})

这不起作用。它返回零结果。

最佳答案

要为嵌套字段构造过滤器,请使用点. 来指定该字段及其完整“路径”:

bson.M{"target.roomId": bson.M{"$in": roomIds}}

其中 roomIds 应该是 ID 片段,例如类型为 []string[]any,但它应包含 string 形式的房间 ID。

关于mongodb - 查询有关 Go 项目中对象数组的 MongoDb 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73720895/

相关文章:

PHP Mongo 聚合匹配正则表达式

golang protobuf 编码(marshal)固定大小的空结构

go - 如何加密可以在固定期限内解密的数据

postgresql - 无法使用 Helm Charts 使用 Golang 连接到 AWS RDS PostgreSQL

python - 在用户输入的某些点切片和添加换行符的正确方法

Python 使用多个元组列表对列表进行切片

python - 从末尾开始迭代切片索引(python): how to avoid "-0" to be equal to "0"?

mongodb - 使用结构 slice 更新文档

django - 使用 django 1.9 执行 syncdb 时出现 “settings.DATABASES is improperly configured” 错误

mongodb - Mongoexport日期范围查询结果解析失败