0
我的問題是關於查詢多鍵文檔時MongoDB的運行方式。Mongodb - 查詢多鍵索引文檔
假設我有這些文件: { a: 1, b: 2, c: ['x','y','z'] }, { a:3, b: null, c: ['x','z'] }
我的查詢是這樣的: db.<collection>.find({ b: null, c: 'x'})
我的指標是: db.<collection>.ensureIndex({ c: 1 })
我的問題是:對於上面的查詢(即請求c
AND b
),MongoDB如何調用查詢?它是否「看到」我有c
上的索引,還是試圖只查找c
和b
的索引?
在find()之後使用.explain()方法並查看nscannedObjects和nscanned。它可以幫助您檢查索引 – Disposer
的使用情況。只是做了那個...和nscannedObjects是集合的大小。爲什麼它會通過整個集合來獲取索引字段的內容。 – refaelos
我根據自己的文檔爲自己做了一個測試用例,並在2個文檔中搜索,我得到了nscanned = 1,意味着它使用索引。在.explain()中查看光標,如果它使用索引,則光標應該像「BtreeCursor c_1」 – Disposer