Node.js Mongodb-创建索引-它是必需的,我搜索是否正常?
我的帖子有两部分: 1) 确认书: 我使用以下标准创建了一个索引:Node.js Mongodb-创建索引-它是必需的,我搜索是否正常?,node.js,mongodb,Node.js,Mongodb,我的帖子有两部分: 1) 确认书: 我使用以下标准创建了一个索引: db.collection.createIndex({order:1,code:1}) 因此,如果我想运行这样的查询,那么可以从这里确认这是最好的做法(创建索引)。(另外,如果我不创建索引,它在技术上有什么区别,只是影响性能而已) 2) 语法 对于查询,我想使用或,但是它显示了一个错误,请有人检查我的语法是否正确: db.collection.find( $or[{order : {$in: ['food', 'drink']}
db.collection.createIndex({order:1,code:1})
因此,如果我想运行这样的查询,那么可以从这里确认这是最好的做法(创建索引)。(另外,如果我不创建索引,它在技术上有什么区别,只是影响性能而已)
2) 语法
对于查询,我想使用或
,但是它显示了一个错误,请有人检查我的语法是否正确:
db.collection.find( $or[{order : {$in: ['food', 'drink']}}, {code : {$in: ['12', '14']}}] )
非常感谢操作员表单如下所示
{ $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
$或
运算符窗体如下
{ $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
既然zangw已经回答了问题2,我就只回答问题1
db.collection.createIndex({order:1,code:1})
将创建名为
order\u 1\u code\u 1
,这可以加快两种查询的速度。如果查询中的字段可以形成索引名的前缀,MongoDB可以使用索引。因此,如果您只通过code
进行查询,那么索引order\u 1\u code\u 1
是无用的。既然zangw已经回答了问题2,我就只回答问题1
db.collection.createIndex({order:1,code:1})
将创建名为
order\u 1\u code\u 1
,这可以加快两种查询的速度。如果查询中的字段可以形成索引名的前缀,MongoDB可以使用索引。因此,如果您仅通过code
进行查询,则索引order\u 1\u code\u 1
是无用的
db.collection.find( {$or: [{order : {$in: ['food', 'drink']}},
{code : {$in: ['12', '14']}}]} )