有人可以告訴我這兩個查詢之間的區別嗎?
db.foo.find({ $and: [{a: 1}, {a: {$gt: 5}}]})
和
db.foo.find({a:1, a:{$gt:5}})
編輯 好讓我改變的問題一點點。假設以下
dev(mongod-2.2.0)>db.foo.insert({UserID: 1, Status:'unread' })
dev(mongod-2.2.0)>db.foo.insert({UserID: 1, Status:'unread' })
dev(mongod-2.2.0)>db.foo.insert({UserID: 1, Status:'unread' })
dev(mongod-2.2.0)>db.foo.insert({UserID: 1, Status:'unread' })
dev(mongod-2.2.0)>db.foo.insert({UserID: 1, Status:'unread' })
dev(mongod-2.2.0)>db.foo.insert({UserID: 1, Status:'unread' })
dev(mongod-2.2.0)>db.foo.insert({UserID: 1, Status:'unread' })
dev(mongod-2.2.0)>db.foo.insert({UserID: 1, Status:'unread' })
而且我想找到用戶ID 1.執行所有未讀郵件我這樣做
db.foo.find({UserID:1, Status:'unread'})
或本
db.foo.find({$and: [{UserID:1},{Status:'unread']})
兩個查詢是有效的。我在mongo shell上測試了它們,並且兩者都返回了相同的結果 – Optimus
可能valid在shell接受它的時候並不是很合適的詞,但是它並不合理,因爲第一個'a'值被忽略,最終執行的結果是: 'db.foo.find({a:{$ gt:5}})' – JohnnyHK
除了自然語法,兩者之間還有什麼區別嗎? – Optimus