在一个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,但它应该包含房间ID作为string.

Mongodb相关问答推荐

MongoDB MQL,将列表一分为二,仅获取唯一值

MongoDB获取所有文档谁的S子文档只包含一个特定值?

MongoDB:如何获取多个$indexOfArray值?

Mongo查找条件:不存在

DTO 验证适用于 POST,但不适用于 PUT

如何在查找 foreignField 中使用通配符?

Golang:如何判断 collection.Find 是否没有找到任何文件?

在 Mongo 聚合中,可以通过分组生成 3 个不同的计数

如何在mongodb中级联删除文档?

无法让 Mongoose.js 子文档数组填充

使用 MongoDB 进行分页

如何在任意深度查找 MongoDB 字段名称

如何使用 mongodb 和 php 正确处理分页查询?

带有 jQ​​uery Ajax/JSON 前端的 MongoDB 或 CouchDB 中间件

在 mongoDB 中展平嵌套的 JSON struct

Mongodb KeyFile 太开放权限

用于嵌入式集合的 MongoDB 首选模式.文档与数组

使用自定义 _id 值时 mongodb 中的 Upserts

我可以只获取 Cursor 对象(pymongo)中的第一项吗?

mongoose查询返回 null