// SERVER-2829 Test arrays matching themselves within a $in expression. t = db.jstests_in8; t.drop(); t.save({key: [1]}); t.save({key: ['1']}); t.save({key: [[2]]}); function doTest() { assert.eq(1, t.count({key: [1]})); assert.eq(1, t.count({key: {$in: [[1]]}})); assert.eq(1, t.count({key: {$in: [[1]], $ne: [2]}})); assert.eq(1, t.count({key: {$in: [['1']], $type: 2}})); assert.eq(1, t.count({key: ['1']})); assert.eq(1, t.count({key: {$in: [['1']]}})); assert.eq(1, t.count({key: [2]})); assert.eq(1, t.count({key: {$in: [[2]]}})); } doTest(); t.ensureIndex({key: 1}); doTest();