t = db.regex_embed1; t.drop(); t.insert({_id: 1, a: [{x: "abc"}, {x: "def"}]}); t.insert({_id: 2, a: [{x: "ab"}, {x: "de"}]}); t.insert({_id: 3, a: [{x: "ab"}, {x: "de"}, {x: "abc"}]}); function test(m) { assert.eq(3, t.find().itcount(), m + "1"); assert.eq(2, t.find({"a.x": "abc"}).itcount(), m + "2"); assert.eq(2, t.find({"a.x": /.*abc.*/}).itcount(), m + "3"); assert.eq(1, t.find({"a.0.x": "abc"}).itcount(), m + "4"); assert.eq(1, t.find({"a.0.x": /abc/}).itcount(), m + "5"); } test("A"); t.ensureIndex({"a.x": 1}); test("B");