mongodb sort limit和skip用法

默北 mongodb270,20615字数 3339阅读11分7秒阅读模式

检索数据可以使用sort()方法来对数据进行排序,指定排序字段,并使用1或-1来指定排序方式是升序或降序。类似于SQL语句中的order by语句。

可以使用limit()方法来读取指定数量的数据,还可以使用skip()方法来跳过指定数量的数据。对分页性能上面效率非常高。文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

1. 语法文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

>db.COLLECTION_NAME.find().sort({KEY:1})文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

>db.COLLECTION_NAME.find().limit(NUMBER)文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

2. sort()文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

> db.mediaCollection.find().sort({"Tracklist":1}).toArray()
[
        {
                "_id" : ObjectId("5353462f93efef02c962da71"),
                "Type" : "Book",
                "Title" : "Definitive Guide to MongoDB, the",
                "ISBN" : "987-1-4302-3051-9",
                "Publisher" : "Apress",
                "Author" : [
                        "Membrey, Peter",
                        "Plugge, Eelco",
                        "Hawkins, Tim"
                ]
        },
        {
                "_id" : ObjectId("5353462f93efef02c962da72"),
                "Type" : "CD",
                "Artist" : "Nirvana",
                "Title" : "Nevermind"
        },
        {
                "_id" : ObjectId("5353463193efef02c962da73"),
                "Type" : "CD",
                "Artist" : "Nirvana",
                "Title" : "Nevermind",
                "Tracklist" : [
                        {
                                "Track" : "1",
                                "Title" : "Smells like teen spirit",
                                "Length" : "5:02"
                        },
                        {
                                "Track" : "2",
                                "Title" : "In Bloom",
                                "Length" : "4:15"
                        }
                ]
        }
]
> db.mediaCollection.find().toArray()
[
        {
                "_id" : ObjectId("5353462f93efef02c962da71"),
                "Type" : "Book",
                "Title" : "Definitive Guide to MongoDB, the",
                "ISBN" : "987-1-4302-3051-9",
                "Publisher" : "Apress",
                "Author" : [
                        "Membrey, Peter",
                        "Plugge, Eelco",
                        "Hawkins, Tim"
                ]
        },
        {
                "_id" : ObjectId("5353462f93efef02c962da72"),
                "Type" : "CD",
                "Artist" : "Nirvana",
                "Title" : "Nevermind"
        },
        {
                "_id" : ObjectId("5353463193efef02c962da73"),
                "Type" : "CD",
                "Artist" : "Nirvana",
                "Title" : "Nevermind",
                "Tracklist" : [
                        {
                                "Track" : "1",
                                "Title" : "Smells like teen spirit",
                                "Length" : "5:02"
                        },
                        {
                                "Track" : "2",
                                "Title" : "In Bloom",
                                "Length" : "4:15"
                        }
                ]
        }
]

注意:如果指定的排序键不存在,那么数值将以它们插入的顺序升序返回。文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

3. limit()文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

该函数用来指定返回结果的最大数量。文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

> db.mediaCollection.find().limit(1).toArray()
[
        {
                "_id" : ObjectId("5353462f93efef02c962da71"),
                "Type" : "Book",
                "Title" : "Definitive Guide to MongoDB, the",
                "ISBN" : "987-1-4302-3051-9",
                "Publisher" : "Apress",
                "Author" : [
                        "Membrey, Peter",
                        "Plugge, Eelco",
                        "Hawkins, Tim"
                ]
        }
]

4. skip()文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

跳过前面两条数据。文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

> db.mediaCollection.find().skip(2).toArray()
[
        {
                "_id" : ObjectId("5353463193efef02c962da73"),
                "Type" : "CD",
                "Artist" : "Nirvana",
                "Title" : "Nevermind",
                "Tracklist" : [
                        {
                                "Track" : "1",
                                "Title" : "Smells like teen spirit",
                                "Length" : "5:02"
                        },
                        {
                                "Track" : "2",
                                "Title" : "In Bloom",
                                "Length" : "4:15"
                        }
                ]
        }
]

5. 组合使用文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

> db.mediaCollection.find().sort({"Tracklist":1}).toArray()
[
        {
                "_id" : ObjectId("5353462f93efef02c962da71"),
                "Type" : "Book",
                "Title" : "Definitive Guide to MongoDB, the",
                "ISBN" : "987-1-4302-3051-9",
                "Publisher" : "Apress",
                "Author" : [
                        "Membrey, Peter",
                        "Plugge, Eelco",
                        "Hawkins, Tim"
                ]
        },
        {
                "_id" : ObjectId("5353462f93efef02c962da72"),
                "Type" : "CD",
                "Artist" : "Nirvana",
                "Title" : "Nevermind"
        },
        {
                "_id" : ObjectId("5353463193efef02c962da73"),
                "Type" : "CD",
                "Artist" : "Nirvana",
                "Title" : "Nevermind",
                "Tracklist" : [
                        {
                                "Track" : "1",
                                "Title" : "Smells like teen spirit",
                                "Length" : "5:02"
                        },
                        {
                                "Track" : "2",
                                "Title" : "In Bloom",
                                "Length" : "4:15"
                        }
                ]
        }
]
> db.mediaCollection.find().sort({"Tracklist":1}).limit(1).skip(1).toArray()
[
        {
                "_id" : ObjectId("5353462f93efef02c962da72"),
                "Type" : "CD",
                "Artist" : "Nirvana",
                "Title" : "Nevermind"
        }
]

6. 自然顺序$natural文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/

> db.mediaCollection.find().sort( { $natural: -1 } ).toArray()
[
        {
                "_id" : ObjectId("5353463193efef02c962da73"),
                "Type" : "CD",
                "Artist" : "Nirvana",
                "Title" : "Nevermind",
                "Tracklist" : [
                        {
                                "Track" : "1",
                                "Title" : "Smells like teen spirit",
                                "Length" : "5:02"
                        },
                        {
                                "Track" : "2",
                                "Title" : "In Bloom",
                                "Length" : "4:15"
                        }
                ]
        },
        {
                "_id" : ObjectId("5353462f93efef02c962da72"),
                "Type" : "CD",
                "Artist" : "Nirvana",
                "Title" : "Nevermind"
        },
        {
                "_id" : ObjectId("5353462f93efef02c962da71"),
                "Type" : "Book",
                "Title" : "Definitive Guide to MongoDB, the",
                "ISBN" : "987-1-4302-3051-9",
                "Publisher" : "Apress",
                "Author" : [
                        "Membrey, Peter",
                        "Plugge, Eelco",
                        "Hawkins, Tim"
                ]
        }
]
文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/文章源自运维生存时间-https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/
weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 27/05/2014 01:00:12
  • 转载请务必保留本文链接:https://www.ttlsa.com/mongodb/mongodb-sort-limit-skip-usage/
评论  2  访客  2
    • 请输入您的QQ号
      请输入您的QQ号 9

      kjkj评论

      • 匿名
        匿名 9

        :lol: 饿3

      评论已关闭!