Let's say I do have a document like this:
{
_id: "cow",
comments: [
{user: "karl", comment: "I like cows.", at: /*a date*/},
{user: "harry", comment: "Cows are the best.", at: /*a date*/}
]
}
Now I want to collect all the comments that "karl"
left in my db. Or just the ones on a certain date. The "comments"
are indexed, how can I query for that?
Something like:
db.foo.find({"comments.user":"karl", "comments.at":{$gt:{dateObject}});
Haven't tested but you get the idea; you can drill down on items as such.
I'd recommend going through this site as it drives you through a great deal of interactive tutorials: Interactive Tutorial
You should use $elemMatch to match more than one conditions in same doc.
Something like:
db.foo.find({comments: {"$elemMatch": {user: "karl", at: {$gt:{dateObject}}}})
See here for more details.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With