我的帖子中有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']}}] )
非常感谢
答案 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
无用。