ma0*_*a08 6 indexing mongoose mongodb
我想使用mongodb的默认值_id但按降序排列.我想存储帖子,并希望在我使用时从头开始获取最新帖子find().我正在使用猫鼬.我试过了
postSchema.index({_id:-1})
Run Code Online (Sandbox Code Playgroud)
但它不起作用
> db.posts.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "mean-dev.posts"
}]
Run Code Online (Sandbox Code Playgroud)
我删除了数据库并重新启动了mongod.没有运气.有没有办法使用mongodb的默认索引在同一时间将_id设置为递减索引?我不想用它sort()来逐步对结果进行排序_id.
简短的回答
不,您无法在_id字段上创建降序索引.您也无法删除它以将其重新创建为降序索引.Mongo将在_id字段上执行降序排序时使用默认索引.
答案很长
如文档中所述,_id字段上的MongoDB索引会自动创建为升序唯一索引,您无法将其删除.
您也不需要在_id字段上创建额外的降序索引,因为MongoDB可以使用默认索引进行排序.
要验证MongoDB是否使用索引进行排序,可以使用explain命令:
db.coll.find().sort({_id : -1}).explain();
Run Code Online (Sandbox Code Playgroud)
在output explain命令中,相关部分是
"cursor" : "BtreeCursor _id_ reverse"
Run Code Online (Sandbox Code Playgroud)
这意味着MongoDB使用索引以相反的顺序对查询进行排序.
| 归档时间: |
|
| 查看次数: |
1485 次 |
| 最近记录: |