2016-02-20 62 views
0

2件到我的帖子在这里:Mongodb - 创建索引 - 是否需要,我搜索好吗?

1)确认: 我使用创建的索引:标准:

db.collection.createIndex({ order: 1, code: 1 })

从这里

所以有人可以证实这是最好的事情做(创建索引)如果我然后想运行一个查询如。 (另外,如果我不创建索引什么区别它在技术上做,它只是在影响性能)

db.collection.find({order : {$in: ['food', 'drink']}}) 

2)语法 与查询我想用一个or但其显示的错误,会有人好心检查我的语法正确位置:

db.collection.find($or[{order : {$in: ['food', 'drink']}}, {code : {$in: ['12', '14']}}] ) 

非常感谢

回答

1

$or操作形式如下

{ $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] } 

所以

db.collection.find({$or: [{order : {$in: ['food', 'drink']}}, 
          {code : {$in: ['12', '14']}}]} ) 
1

由于zangw已经回答了第二个问题,我只是回答问题1

db.collection.createIndex({ order: 1, code: 1 })将创建一个名为 order_1_code_1指数,这样可以加快你的这两个查询。如果查询中的字段可以形成索引名称的前缀,则MongoDB可以使用索引。所以如果你只通过code查询,索引order_1_code_1是无用的。

相关问题