sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB använder inte mitt index

Vanliga mongodb-index använder både fältvärde och typ för att bygga trädet.

Frågor som $empty: true eller $ne: null har inte en parameter av någon typ och kan inte dra nytta av sådana index. Det är ett specialfall och kräver ett speciellt glesare index .

Om din [email protected]_1 index skapas som:

db.getCollection('logs.res').createIndex(
    {
        "timeStamp" : -1,
        "[email protected]" : 1
    },
    { sparse: true }
)

Det bör stödja din fråga bäst. Annars är det ingen stor skillnad mellan [email protected]_1 och timeStamp_1_module_1_etc eftersom det enda första fältet används.



  1. Jedis, kan inte få jedis-anslutning:kan inte hämta resurs från poolen

  2. Spring Data MongoDB Repository med anpassat samlingsnamn

  3. Sailsjs - Custom Logging med Winston

  4. DBRefs (Mongo Document-referenser) hämtades inte ivrigt