My answer wasn't clear enough ...
2 experiments with unexpected results in db.version() 1.7.4
1)
db.test.insert({
point:[1,10],
tags:[
{k:'key',v:'value'},
{k:'key2',v:123}
]
})
db.test.insert({
point:[1,10],
tags:{k:'key',v:'value'}
})
db.test.ensureIndex({point:"2d","tags.k":1,"tags.v":1})
db.test.find({
point:{"$within":{"$box":[[0,0],[12,12]]}},
"tags.k":"key"
})
Result:
{ "_id" : ObjectId("4d373f753ffe71e78a71bfc0"), "point" : [ 1, 10 ],
"tags" : { "k" : "key", "v" : "value" } }
Why is only 1 object returned?
2)
db.test.drop()
db.test.insert({p:[1112,3473],t:[{k:'a',v:'b'},{k:'c',v:'d'}]})
db.test.ensureIndex({p:'2d','t.k':1,'t.v':1},{min:0,max:10000})
db.test.find({p:[1112,3473],'t.k':'a'})
No result.