Reputation: 23277
I've this object on reference
collection:
> db.reference.find().pretty();
{
"_id" : "Ref1",
"metadata" : {
"values" : [
{
"hola" : "adeu"
},
{
"departament" : [
{
"ambit" : "just",
"name" : "ts"
}
]
}
]
},
"timestamp" : ISODate("2018-09-22T08:37:08.989Z"),
"_class" : "com.Reference"
}
I need to get document where metadata.values
has an object {hola: "adeu"}
.
I've tried without any luck:
> db.reference.find({metadata: {values: {hola: "adeu"}}});
> db.reference.find({metadata: {values: [{hola: "adeu"}]}});
Any ideas?
Upvotes: 0
Views: 41
Reputation: 990
You can do something like this:
db.getCollection('reference').find({"metadata.values" : { "$in" : [{"hola" : "adeu"}] }});
You can also do an elemMatch like this, when you want it for a single object:
db.getCollection('reference').find({"metadata.values" : { "$elemMatch" : {"hola" : "adeu"} }})
Upvotes: 1