MongoDB 'count()' 非常慢。我们如何解决它?

您可以ensureIndex()用来提高count()MongoDB中方法的性能。为了理解这个概念,让我们用文档创建一个集合。使用文档创建集合的查询如下 -

> db.countPerformanceDemo.insertOne({"StudentName":"John","StudentCountryName":"US"});

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5c8ebcf82f684a30fbdfd55f")

}

> db.countPerformanceDemo.insertOne({"StudentName":"Mike","StudentCountryName":"UK"});

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5c8ebd042f684a30fbdfd560")

}

> db.countPerformanceDemo.insertOne({"StudentName":"David","StudentCountryName":"AUS"});

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5c8ebd112f684a30fbdfd561")

}

> db.countPerformanceDemo.insertOne({"StudentName":"Carol","StudentCountryName":"US"});

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5c8ebd1a2f684a30fbdfd562")

}

> db.countPerformanceDemo.insertOne({"StudentName":"Bob","StudentCountryName":"UK"});

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5c8ebd212f684a30fbdfd563")

}

> db.countPerformanceDemo.insertOne({"StudentName":"David","StudentCountryName":"UK"});

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5c8ebd9a2f684a30fbdfd564")

}

> db.countPerformanceDemo.insertOne({"StudentName":"David","StudentCountryName":"US"});

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5c8ebd9e2f684a30fbdfd565")

}

在find()方法的帮助下显示集合中的所有文档。查询如下 -

> db.countPerformanceDemo.find().pretty();

以下是输出 -

{

   "_id" : ObjectId("5c8ebcf82f684a30fbdfd55f"),

   "StudentName" : "John",

   "StudentCountryName" : "US"

}

{

   "_id" : ObjectId("5c8ebd042f684a30fbdfd560"),

   "StudentName" : "Mike",

   "StudentCountryName" : "UK"

}

{

   "_id" : ObjectId("5c8ebd112f684a30fbdfd561"),

   "StudentName" : "David",

   "StudentCountryName" : "AUS"

}

{

   "_id" : ObjectId("5c8ebd1a2f684a30fbdfd562"),

   "StudentName" : "Carol",

   "StudentCountryName" : "US"

}

{

   "_id" : ObjectId("5c8ebd212f684a30fbdfd563"),

   "StudentName" : "Bob",

   "StudentCountryName" : "UK"

}

{

   "_id" : ObjectId("5c8ebd9a2f684a30fbdfd564"),

   "StudentName" : "David",

   "StudentCountryName" : "UK"

}

{

   "_id" : ObjectId("5c8ebd9e2f684a30fbdfd565"),

   "StudentName" : "David",

   "StudentCountryName" : "US"

}

这是获取高性能形式的查询count()-

> db.countPerformanceDemo.ensureIndex({"StudentName":1});

{

   "createdCollectionAutomatically" : false,

   "numIndexesBefore" : 1,

   "numIndexesAfter" : 2,

   "ok" : 1

}

现在,实现count()方法。它计算 StudentName 为“David”的记录:

> db.countPerformanceDemo.find({"StudentName":"David"}).count();

以下是输出 -

3

以上是 MongoDB 'count()' 非常慢。我们如何解决它? 的全部内容, 来源链接: utcz.com/z/360353.html

回到顶部