Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mongodb-创建索引-它是必需的,我搜索是否正常?_Node.js_Mongodb - Fatal编程技术网

Node.js Mongodb-创建索引-它是必需的,我搜索是否正常?

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

我的帖子有两部分:

1) 确认书: 我使用以下标准创建了一个索引:

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