欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mongodb UPDATE使用$sort將數(shù)組重新排序的示例代碼

 更新時(shí)間:2024年06月21日 10:55:42   作者:威贊  
$sort方法在$push操作過(guò)程中,修改數(shù)組元素的排序,$sort方法,必須和$each共同使用,mongodb允許用戶傳遞一個(gè)空的數(shù)組給$each方法,保證用戶無(wú)須向數(shù)組中插入元素也可以將數(shù)組進(jìn)行排序,本文給大家介紹了Mongodb UPDATE使用$sort將數(shù)組重新排序,需要的朋友可以參考下

本文繼續(xù)探討對(duì)文檔數(shù)組類(lèi)型字段進(jìn)行更新。可以思考平時(shí)是否遇到這樣的需求。數(shù)據(jù)插入數(shù)組字段后,需要對(duì)數(shù)組字段進(jìn)行排序。比如找出昨天溫度最高的幾個(gè)城市,或者降水量最多的幾個(gè)城市。或者成績(jī)最高的幾個(gè)同學(xué)。這里都需要使用到排序。Mongodb在$push操作中,提供了$sort數(shù)據(jù)修飾符,允許用戶向數(shù)組插入元素后,對(duì)數(shù)組進(jìn)行排序。

定義

$sort方法在$push操作過(guò)程中,修改數(shù)組元素的排序。$sort方法,必須和$each共同使用。mongodb允許用戶傳遞一個(gè)空的數(shù)組給$each方法,保證用戶無(wú)須向數(shù)組中插入元素也可以將數(shù)組進(jìn)行排序。$sort方法,按照下面的形式來(lái)使用。

{
    $push: {
        <field>: {
            $each: [<value1>, <value2>, ...],
            $sort: <sort specification>
        }
    }
}

對(duì)于sort specification, 當(dāng)對(duì)非文檔數(shù)組進(jìn)行排序,或?qū)φ麄€(gè)文檔作為整體進(jìn)行排序時(shí),正序可以指定1, 倒序可以指定為-1.當(dāng)對(duì)文檔字段進(jìn)行排序時(shí),指定要排序的字段和排列順序。不需要添加數(shù)組字段的字段名稱(chēng)。

行為

  • 自mongodb5.0開(kāi)始,UPDATE操作按照字段名稱(chēng)的字典順序更新字段。當(dāng)字段中包含數(shù)字時(shí),按照數(shù)字順序依次更新字段。當(dāng)然,對(duì)一個(gè)文檔的多個(gè)字段操作,是原子性的。
  • $sort可以對(duì)數(shù)組中的文檔進(jìn)行排序。這種排序可以發(fā)生在整個(gè)文檔或者文檔的部分字段當(dāng)中。
  • $sort方法必須和$each方法共同使用,否則報(bào)錯(cuò)

應(yīng)用

對(duì)數(shù)組中的文檔進(jìn)行排序

向students集合中插入數(shù)據(jù),其中quzzes是文檔數(shù)組類(lèi)型字段。

db.students.insertOne(
    {
        _id:1,
        quzzes: [
            {id:1, score:6},
            {id:2, score:9}
        ]
    }
)

構(gòu)建更新語(yǔ)句,要求向quzzes插入數(shù)組元素,并按照score正序進(jìn)行排序。

db.students.updateOne(
    {_id:1},
    {
        $push: {
            quzzes: {
                $each: [
                    {id:3, score:8},
                    {id:4, score:7},
                    {id:5, score:6}
                ],
                $sort: {score:1}
            }
        }
    }
)

查看數(shù)據(jù)更新結(jié)果

db.students.find().pretty();
[
  {
    "_id": 1,
    "quzzes": [
      {
        "id": 1,
        "score": 6
      },
      {
        "id": 5,
        "score": 6
      },
      {
        "id": 4,
        "score": 7
      },
      {
        "id": 3,
        "score": 8
      },
      {
        "id": 2,
        "score": 9
      }
    ]
  }
]

使用$sort排列非文檔數(shù)據(jù)類(lèi)型。

向students集合插入數(shù)據(jù)。其中test字段是數(shù)值類(lèi)型的數(shù)組。

db.students.insertOne({
    _id:2,
    tests: [
        89,70,89, 50
    ]
})

更新插入的數(shù)據(jù), 要求插入新數(shù)據(jù)40, 60并對(duì)數(shù)組按照正序進(jìn)行排序。

db.students.updateOne({
    _id:2
},{
    $push: {
        tests: {
            $each: [40, 60],
            $sort: 1
        }
    }
})

查看數(shù)據(jù)更新結(jié)果

db.students.find()
{
    "_id": 2,
    "tests": [
      40,
      50,
      60,
      70,
      89,
      89
    ]
  }

僅使用$sort對(duì)數(shù)組進(jìn)行排序

向students集合插入數(shù)據(jù),其中tests是數(shù)值類(lèi)型的數(shù)組

db.students.insertOne({
    _id:3, tests: [89, 70, 100, 20]
})

修改新插入的文檔,要求將tests字段按照倒序排序。

db.students.updateOne({
    _id:3
},{
    $push: {
        tests: {
            $each: [],
            $sort: -1
        }
    }
})

查看更新后的結(jié)果

{
    "_id": 3,
    "tests": [
      100,
      89,
      70,
      20
    ]
  }

以上就是Mongodb UPDATE使用$sort將數(shù)組重新排序的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Mongodb $sort數(shù)組重新排序的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MongoDB常用命令小結(jié)

    MongoDB常用命令小結(jié)

    這篇文章主要介紹了MongoDB的一些常用命令,學(xué)習(xí)與使用MongoDB數(shù)據(jù)庫(kù)的朋友可以參考下
    2013-08-08
  • 詳解MongoDB范圍片鍵和哈希片鍵

    詳解MongoDB范圍片鍵和哈希片鍵

    這篇文章主要介紹了MongoDB范圍片鍵和哈希片鍵的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MongoDB,感興趣的朋友可以了解下
    2021-03-03
  • mongodb exception: $concat only supports strings, not NumberInt32解決辦法

    mongodb exception: $concat only supports strings, not Number

    這篇文章主要介紹了mongodb exception: $concat only supports strings, not NumberInt32解決辦法,需要的朋友可以參考下
    2014-06-06
  • MongoDB數(shù)據(jù)備份遷移的全過(guò)程

    MongoDB數(shù)據(jù)備份遷移的全過(guò)程

    這篇文章主要記錄了MongoDB數(shù)據(jù)備份遷移的全過(guò)程,文中通過(guò)圖文結(jié)合的方式介紹的非常詳細(xì),對(duì)大家了解學(xué)習(xí)MongoDB數(shù)據(jù)備份遷移有一定的幫助,需要的朋友可以參考下
    2024-06-06
  • SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

    SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

    這篇文章主要介紹了SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Mongodb?刪除集合數(shù)據(jù)后釋放磁盤(pán)空間的操作步驟

    Mongodb?刪除集合數(shù)據(jù)后釋放磁盤(pán)空間的操作步驟

    Mongodb當(dāng)集合數(shù)據(jù)占用比較多,對(duì)其進(jìn)行清理后,集合存儲(chǔ)空間下降,但磁盤(pán)空間并沒(méi)釋放,對(duì)于具有活動(dòng)更新的集合來(lái)說(shuō),有一些可重用的空間是正常的,過(guò)多的可重用空間通常是刪除大量數(shù)據(jù)的結(jié)果,這篇文章主要介紹了Mongodb?刪除集合數(shù)據(jù)后如何釋放磁盤(pán)空間,需要的朋友可以參考下
    2023-11-11
  • 深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

    深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

    MongoDB是一個(gè)可擴(kuò)展、高性能的分布式文檔存儲(chǔ)數(shù)據(jù)庫(kù),由C 語(yǔ)言編寫(xiě),下面這篇文章主要給大家介紹了關(guān)于MongoDB是如何存儲(chǔ)數(shù)據(jù)的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-07-07
  • Mongodb中MapReduce實(shí)現(xiàn)數(shù)據(jù)聚合方法詳解

    Mongodb中MapReduce實(shí)現(xiàn)數(shù)據(jù)聚合方法詳解

    Mongodb是針對(duì)大數(shù)據(jù)量環(huán)境下誕生的用于保存大數(shù)據(jù)量的非關(guān)系型數(shù)據(jù)庫(kù),針對(duì)大量的數(shù)據(jù)。接下來(lái)通過(guò)本文給大家介紹Mongodb中MapReduce實(shí)現(xiàn)數(shù)據(jù)聚合方法詳解,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • 關(guān)于MongoDB謹(jǐn)防索引seek的效率問(wèn)題詳析

    關(guān)于MongoDB謹(jǐn)防索引seek的效率問(wèn)題詳析

    這篇文章主要給大家介紹了關(guān)于MongoDB謹(jǐn)防索引seek的效率問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MongoDB具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • windows與mac安裝mongodb數(shù)據(jù)庫(kù)的方法步驟與注意事項(xiàng)

    windows與mac安裝mongodb數(shù)據(jù)庫(kù)的方法步驟與注意事項(xiàng)

    今天小編就為大家分享一篇關(guān)于windows與mac安裝mongodb數(shù)據(jù)庫(kù)的方法步驟與注意事項(xiàng),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03

最新評(píng)論