组合多个查询的Mongodb
我有一个RESTAPI,在这里我可以得到如下的搜索参数 API查询组合多个查询的Mongodb,mongodb,rest,mongodb-query,Mongodb,Rest,Mongodb Query,我有一个RESTAPI,在这里我可以得到如下的搜索参数 API查询 { [ { "state": "abc", "country": "IN" }, { "state": "def", "country": "US"
{
[
{
"state": "abc",
"country": "IN"
},
{
"state": "def",
"country": "US"
}
]
}
Mongodb模式
id | description | state | country
1 | India | abc | IN
2 | USA | def | US
我正在寻找一个优化的查询,以使用一个mongodb查询获得每个API查询行的描述。我正在看嵌套的和
编辑:我不是在寻找排序后的响应
{
$and: { [
$and: [
{"state": "abc", "country": "IN"},
{"state": "def", "country": "US"}
]
] }
}
我想知道有没有更好的查询方法来提高查询性能,一个州和国家字段的复合索引?非常感谢您的指点。您可以使用$and。语法应如下所示
{
"$and": [
{"$and": {"state": "abc", "country": "IN"}},
{ "$and": {"state": "def", "country": "US"}}
]
}
如果您有一个索引one{state,country}
,如果您按顺序提供它们,它将使用
了解
如果您已经对频繁请求进行了分析,则可以对索引中存储的值进行排序,以便更快地检索。如果您的请求落在第一组国家名称上,您可以将它们存储在索引中的a到z。反之亦然
即使只有州索引和国家索引分开,也有可能会进行索引交叉。在这种情况下,不需要复合索引
我建议您
explain()
了解您的查询以及所有匹配条件(如果您有很多匹配条件)。此集合的插入和查询顺序为每秒100秒。因为读和写都存在,所以我们也在研究二次读。考虑到存在写操作并且需要创建和排序索引,索引方法是否有助于用例。谢谢当然,我会看看解释计划。还有一点,我不是在寻找排序的响应。好的,如果你有足够的内核、碎片、服务器,即使每秒读取100次,也不会有任何问题。我建议您选择单个索引,并确保mongo将使用索引交集。