Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MongoDB驱动器C索引未使用_C#_Mongodb_Indexing - Fatal编程技术网

C# MongoDB驱动器C索引未使用

C# MongoDB驱动器C索引未使用,c#,mongodb,indexing,C#,Mongodb,Indexing,在MongoDB中: db.estr.createIndex({_id:1, Atualizar:-1}); 在C中 索引统计数据 { "name" : "_id_1_Atualizar_-1", "key" : { "_id" : 1.0, "Atualizar" : -1.0 }, "host" : "OMNIIS2012HOM:27017", "accesses" : { "ops" : Number

在MongoDB中:

db.estr.createIndex({_id:1, Atualizar:-1});
在C中

索引统计数据

{
    "name" : "_id_1_Atualizar_-1",
    "key" : {
        "_id" : 1.0,
        "Atualizar" : -1.0
    },
    "host" : "OMNIIS2012HOM:27017",
    "accesses" : {
        "ops" : NumberLong(0), <----- not utilizade
        "since" : ISODate("2020-03-24T11:00:25.011-03:00")
    }
}
在MongoDB上执行搜索时,未调用索引
x、 Atualizar是布尔值

您的查询正在对索引规范中的第一个字段进行不等匹配,因此它必须扫描整个索引,对于满足查询的每个_id值,检查匹配的Atualizar值。在许多情况下,这将执行比集合扫描更糟糕的操作,因此可能永远不会使用索引

如果要交换索引中字段的顺序,即

db.estr.createIndex({Atualizar:-1, _id:1})
查询执行器将能够在第一个匹配Atualizar的键处开始扫描,并使用两次扫描的_id值选择所有匹配的文档。这应该执行得更好,因此查询计划器应该选择此索引

注意,对于所有文档都适合RAM的非常小的数据集,收集扫描通常是最快的

db.estr.createIndex({Atualizar:-1, _id:1})