gpt4 book ai didi

mongodb - 为什么解释查询输出给我 Basic Cursor,即使集合上有索引?

转载 作者:可可西里 更新时间:2023-11-01 09:27:45 29 4
gpt4 key购买 nike

我有一个名为 stocks 的集合,我在其上创建了一个复合索引,如下所示

db.stocks.ensureIndex({"symbol":1,"date":1,"type": 1, "isValid": 1,"rootsymbol":1,"price":1},{"unique" : false})

我已经设置了 profilinglevel 来找出所有慢查询。

下面的一个查询花了38毫秒,什么时候解释的,这是下面的结果

对不起,我已经更新了我的问题

db.stocks.find({ query: { symbol: "AAPLE", date: "2014-01-18", type: "O", isValid: true }, orderby: { price: "1" } }).explain();
{
"cursor" : "BasicCursor",
"nscanned" : 705402,
"nscannedObjects" : 705402,
"n" : 0,
"millis" : 3456,
"indexBounds" : {

}
}

我的问题是为什么它显示 BasicCursor,即使它上面有索引??

最佳答案

我很确定这里的问题是您对 find() 函数的使用。您正在指定一个 query 参数并在其中放置您的搜索条件。我认为您实际上不需要将 query 放在那里。只需插入您的搜索条件。像这样:

db.stocks.find({ 
symbol: "AAPLE",
date: "2014-01-18",
type: "O",
isValid: true
}).sort( { "price": 1} ).explain();

另请注意我对排序所做的更改。您可以阅读有关对游标排序的更多信息 here .

关于mongodb - 为什么解释查询输出给我 Basic Cursor,即使集合上有索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18723158/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com