我不确定我是否理解在mongo Db中使用密钥的时间。
在本例中
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "test.fubar",
"name" : "_id_"
},
{
"v" : 1,
"key" : {
"a" : 1,
"b" : 1
},
"ns" : "test.fubar",
"name" : "a_1_b_1"
},
{
"v" : 1,
"key" : {
"a" : 1,
"c" : 1
},
"ns" : "test.fubar",
"name" : "a_1_c_1"
},
{
"v" : 1,
"key" : {
"c" : 1
},
"ns" : "test.fubar",
"name" : "c_1"
},
{
"v" : 1,
"key" : {
"a" : 1,
"b" : 1,
"c" : -1
},
"ns" : "test.fubar",
"name" : "a_1_b_1_c_-1"
}
]
在此查询
中db.fubar.find({'a':{'$lt':10000}, 'b':{'$gt': 5000}}, {'a':1, 'c':1}).sort({'c':-1})
我知道可以使用密钥
但为什么 - a_1_b_1_c_-1
被使用?
a_1_b_1
投影中使用的a_1_c_1
c_1
用于排序我使用a_1_b_1_c_-1
的地方?在Find?
答案 0 :(得分:0)
a_1_b_1_c_-1可用于排序。这种情况是排序子集不是从索引开始处开始的。现在,根据this here,由于排序发生在" c:-1",a_1_b_1_c_-1只能在以下时间出现:
因此,在这种情况下可以使用a_1_b_1_c_-1。