Reputation: 1658
I have a Mongoose schema
var MessageSchema = new Schema({
streamer: {
streamer_username: String,
streams: [{
id: String,
messages: [{
date: String,
username: String,
message: String,
song: String
}]
}]
}
})
It contains an array "streams", which contains objects that have the "id" value, as you can see. I'm trying to search the DB with this query.
MsgSchema.find({ "streamer.streamer_username" : streamer_name, "streamer.streams": { "$in": {id: response.data[0].id} }}, (err, found) =>{}})
But i find nothing. Even if i remove the first "username" part, it still doesn't find anything and returns an empty array, so the problem is clearly the second part. What is wrong with my query? I can't find anything about it in the documentation.
Upvotes: 2
Views: 8323
Reputation: 2368
I am late but I hope it helps other people
You can simply use .find()
and inside it, you can create the specifications of the conditions on more than one field nested in an array of documents. The easiest way is:
MessageSchema.find({ "streamer.streams": { id: "XXX" } });
Upvotes: 4