-1

I have the following schema:

{
_id: objectID('593f8c591aa95154cfebe612'),
name: 'test'
businesses: [
 {
  _id: objectID('5967bd5f1aa9515fd9cdc87f'),
  likes: [objectID('595796811aa9514c862033a1'), objectID('593f8c591ba95154cfebe790')]
 }
 {
  _id: objectID('59579ff91aa9514f600cbba6'),
  likes: [objectID('693f8c554aa95154cfebe146')]
 }
  ]
}

How can I check if objectID('593f8c591ba95154cfebe790') exists in the array business.likes where businesses._id = objectID('59579ff91aa9514f600cbba6') ?

In the above example it should return false.

Community
  • 1
  • 1

1 Answers1

0

You can use $elemMatch to find by multiple field in same sub document

db.collectionName.find({
  businesses: {
    $elemMatch: {
      _id: ObjectId("5967bd5f1aa9515fd9cdc87f"),
      likes: ObjectId("593f8c591ba95154cfebe790")
    }
  }
});
Shaishab Roy
  • 16,335
  • 7
  • 50
  • 68