Mongodb 流星中的Mongo索引
不确定我是否理解Meteor中的mongo查询索引。现在,我的查询都没有索引。在应用程序的某些页面上,有15或20个链接指向一个独特的mongo查询。每个查询是否会单独编制索引 例如,如果其中一个查询类似于:Mongodb 流星中的Mongo索引,mongodb,meteor,Mongodb,Meteor,不确定我是否理解Meteor中的mongo查询索引。现在,我的查询都没有索引。在应用程序的某些页面上,有15或20个链接指向一个独特的mongo查询。每个查询是否会单独编制索引 例如,如果其中一个查询类似于: Template.myTemplate.helpers({ ... if (weekly === "1") { var firstWeekers = _.where(progDocs, {Week1: "1"}), firstWeekNames = firstWeeker
Template.myTemplate.helpers({
...
if (weekly === "1") {
var firstWeekers = _.where(progDocs, {Week1: "1"}),
firstWeekNames = firstWeekers.map(function (doc) {
return doc.FullName;
});
return Demographic.find({ FullName: { $in: firstWeekNames }}, { sort: { FullName: 1 }});
}
...
})
我将如何实现每个索引 首先,minimongo(客户端的mongo)在内存中运行,因此索引的影响要比在磁盘上小得多。为了最大限度地减少网络消耗,您通常还希望将客户端上的集合保持在相当小的范围内,从而使客户端上的索引变得更加不重要
但是,在服务器上,索引对于良好的性能至关重要。在服务器上设置索引有两种常用方法:
db.demographic.createIndex({FullName:1})
索引并没有内置在MiniMongo中,MiniMongo是Meteor的MongoDB API客户端实现。谢谢,Floyd博士。对我来说,将客户端上的集合保持在较小的范围内实际上是不可能的,因为该应用程序是一个内部应用程序,需要在浏览器中保存整个集合。它不是一个基于订阅的应用程序,用户可以登录自己的数据。但是收藏量并不是很大。我有点对第一种方法感到困惑。使用mongo shell,如果我在整个应用程序中有多个查询的多个索引,那么服务器如何知道哪个索引与哪个查询相匹配?您为文档键而不是查询编制索引。您还可以在一起查询的多个键上创建。如果您想了解mongo如何使用索引,请尝试