猫鼬在对象数组中查找

时间:2018-10-24 07:47:31

标签: javascript mongodb mongoose

我有一个猫鼬模式

var MessageSchema = new Schema({
    streamer: {
        streamer_username: String,
        streams: [{
            id: String,
            messages: [{
                date: String,
                username: String,
                message: String,
                song: String
            }]
        }]
    }
})

它包含一个数组“ streams”,其中包含具有“ id”值的对象,如您所见。我正在尝试使用此查询搜索数据库。

MsgSchema.find({ "streamer.streamer_username" : streamer_name, "streamer.streams": { "$in": {id: response.data[0].id} }}, (err, found) =>{}})

但是我什么也没找到。即使我删除了第一个“用户名”部分,它仍然找不到任何内容并返回了一个空数组,因此问题显然出在第二部分。 我的查询出了什么问题?我在文档中找不到任何内容。

1 个答案:

答案 0 :(得分:0)

我来晚了,但我希望它可以帮助其他人

您可以简单地使用.find(),并在其中使用嵌套在一组文档中的多个字段上的条件说明。最简单的方法是:

MessageSchema.find({ "streamer.streams": { id: "XXX" } });