Mongodb - 创建索引 - 它是否必需,我搜索好吗?

时间:2016-02-20 14:42:40

标签: node.js mongodb

我的帖子中有2个部分:

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']}}]  )

非常感谢

2 个答案:

答案 0 :(得分:1)

$or运算符表单如下

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

所以

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

答案 1 :(得分:1)

由于zangw回答了问题2,我只回答问题1.

db.collection.createIndex( { order: 1, code: 1 } )将创建名为的索引 order_1_code_1,可以加快您的查询速度。如果查询中的字段可以形成索引名称的前缀,MongoDB可以使用索引。因此,如果您code的唯一查询,则索引order_1_code_1无用。