在 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/