MongoDB对每个用户的db.collection.distinct()的效率与保存为数据库条目和检索结果

在我的nodeJS应用程序中,我查询特定数据库字段的不同值的mongoDB 。 这将返回大约3000个值的数组。

每个用户都必须为每个会话获取这些数据(因为它是运行应用程序不可或缺的部分)。

我想知道是否更有效(和更快)为每个用户做到这一点:

  db.collection.distinct({"value"}, function(data){ // save the data in a variable }) 

或者我是否应该在服务器端加载不同的值(比如每天一次),然后将其保存为每个用户检索的数据库条目,如下所示:

 // Server-side: db.collection.distinct({"value"}, function(data){ // save the data to MongoDB as a document }) // Client-side: db.serverInfo.find({name: "uniqueEntries"}, function(data){ // Save to browser as a variable }) 

我自己testing过这个,不会注意到很大的区别,但是我是目前唯一使用这个应用程序的人。 一旦我得到10/100/1000 / 10,000用户,我想知道哪里最好用。

如果你有这个字段的索引,那么MongoDB应该能够仅使用足够快的索引来返回distinct()操作的结果。

但是,与所有性能问题一样,性能分析是确保最好的方法,或者在MongoDB的情况下,使用explain选项来查看下面发生的事情。