1

在我的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
 }) 

我自己对此进行了测试,并没有发现太大的区别,但我是目前唯一使用该应用程序的人。一旦我获得 10/100/1000/10,000 个用户,我想知道哪个最适合在这里使用。

4

1 回答 1

1

如果你在这个字段上有一个索引,MongoDB 应该能够只使用应该使它足够快的索引来返回 distinct() 操作的结果。

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

于 2013-10-26T03:59:55.713 回答