MongoDB Documentation, Release 3.0.4 Match a Field Without Specifying Array Index If you do not know the index position of the document in the array, concatenate the name of the field that contains the array, with a dot ( . ) and the name of the field in the embedded document. The following example selects all documents where the memos field contains an array that contains at least one embedded document that contains the field by with the value ’shipping’ : db.inventory.find( { 'memos.by': 'shipping' } ) The operation returns the following documents: Single Element Satisfies the Criteria Use $elemMatch operator to specify multiple criteria on an array of em- bedded documents such that at least one embedded document satisfies all the specified criteria. The following example queries for documents where the memos array has at least one embedded document that contains both the field memo equal to ’on time’ and the field by equal to ’shipping’ : db.inventory.find( { memos: { $elemMatch: { memo: 'on time', by: 'shipping' } } } ) { _id: 100, type: "food", item: "xyz", qty: 25, 101 3.3. MongoDB CRUD Tutorials The operation returns the following document: Specify Multiple Criteria for Array of Documents { _id: 100, type: "food", item: "xyz", qty: 25, price: 2.5, ratings: [ 5, 8, 9 ], memos: [ { memo: "on time", by: "shipping" }, { memo: "approved", by: "billing" } ] } { _id: 101, type: "fruit", item: "jkl", qty: 10, price: 4.25, ratings: [ 5, 9 ], memos: [ { memo: "on time", by: "payment" }, { memo: "delayed", by: "shipping" } ] }