主頁 > 前端設計 > 如何在MongoDB中對嵌套陣列進行排序?

如何在MongoDB中對嵌套陣列進行排序?

2022-05-27 19:00:02 前端設計

Mongo游樂場鏈接:https ://mongoplayground.net/p/BGtxQEBAvZh

我有一個陣列欄位“opcoes”,我想按 date 排序dt目前它是未排序的,例如

{
    "_id" : "w900c9b5a-666f-4857-92da-0b9c273dca40",
    "opcoes" : [
        {
            "dt" : ISODate("2021-11-16T11:17:55.386-03:00"),
            "text" : "2"
        },
        {
            "dt" : ISODate("2021-11-16T11:17:29.709-03:00"),
            "text" : "3"
        }
    ]
}

預期結果是:

{
    "_id" : "w900c9b5a-666f-4857-92da-0b9c273dca40",
    "opcoes" : [
        {
            "dt" : ISODate("2021-11-16T11:17:29.709-03:00") ,
            "text" : "3"
        },
        {
            "dt" : , ISODate("2021-11-16T11:17:55.386-03:00")
            "text" : "2"
        }
    ]
}

你能幫助我嗎?我試圖使用$SortArray但它無法識別它。我得到“ Invalid $project :: 由 :: Unknown expression $sortArray 引起”。

我使用以下方法創建了陣列$push

{ 
    $group: { 
        _id: "$chat_key", 
        opcoes: { 
            $push: { 
                text: "$text", 
                dt: "$dt" 
            } 
        } 
    } 
}

有沒有在 a 內排序的選項$push

謝謝

uj5u.com熱心網友回復:

$sortArray適用于 mongoDB 5.2及更高版本,如果您收到此錯誤,您可能使用的是舊版本。

無論您的版本如何,最好的方法是$sort$push

db.collection.aggregate([
  {
    $sort: {dt: 1}
  },
  {
    $group: { 
    _id: "$chat_key", 
    opcoes: {$push: {text: "$text", dt: "$dt"}} 
  }
])

如果您已經有一個陣列(并且您無法控制推送操作),并且您的版本早于 5.2,您可以$unwind

db.collection.aggregate([
  {
    $unwind: "$opcoes"
  },
  {
    $sort: {dt: 1}
  },
  {
    $group: {
      _id: "$_id",
      opcoes: {
        $push: {dt: "$opcoes.dt", text: "$opcoes.text"}
      }
    }
  }
])

操場

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/481380.html

標籤:mongodb 日期 聚合框架

上一篇:旋轉檔案名中已有日期時間的檔案

下一篇:返回列表

標籤雲
其他(140652) Python(33658) JavaScript(21407) Java(15669) C(13905) 區塊鏈(8222) AI(7469) C#(6676) 基礎類(6313) 爪哇(6308) MySQL(6180) html(5733) 熊猫(5303) sql(5265) PHP(5174) 腳本語言(PerlPython)(5129) 非技術區(4971) Linux(4848) 数组(4827) R(4631) Android(4340) 反应(4294) 数据框(3713) css(3652) 节点.js(3374) C語言(3288) C++語言(3117) json(2816) Java相關(2746) 列表(2725) 疑難問題(2699) 安卓(2608) 扑(2606) VBA(2513) 打字稿(2497) 單片機工控(2479) 细绳(2187) ASP.NET(2131) iOS(2104) MongoDB(1986) Web開發(1951) 字典(1937) 麻木的(1909) 循环(1900) 正则表达式(1893) 擅长(1830) 镖(1824) 迅速(1796) 網絡通信(1793) 蟒蛇-3.x(1774) 數據庫相關(1767) VB基礎類(1755) .NETCore(1740) Unity3D(1689) 功能(1679) C++(1660) 開發(1646) .NET技术(1638) 系統維護與使用區(1617) 弹簧靴(1605)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 如何在MongoDB中對嵌套陣列進行排序?

    Mongo游樂場鏈接:https ://mongoplayground.net/p/BGtxQEBAvZh我有一個陣列欄位“opcoes”,我想按 date 排序dt。目前它是未排序的,例如{ "_id" : "w900c9b...

    uj5u.com 2022-05-27 19:00:02 more
  • 旋轉檔案名中已有日期時間的檔案

    我對使用 logrotate 很陌生,我還沒有找到任何有助于解決我當前問題的東西。我的公司有一個服務器(Debian),我們經常在其中創建 cron 任務來處理通過 FTP 上傳的...

    uj5u.com 2022-05-27 18:59:27 more
  • 如何將moment.js轉換為date-fns

    我正在嘗試在我的 react/date-fns 應用程式中使用此 codepen中的代碼。import {useEffect, useRef, useState} from 'react'import {add, sub, format, par...

    uj5u.com 2022-05-27 18:58:10 more
  • 如何在JS中增加這個日期字串'2022-05-06'中的日期

    如何在JS中增加這個日期字串'2022-05-06'中的日期?它既可以是原生解決方案,也可以是時刻解決方案。我立即檢查了 add 方法,但看起來我做錯了什么并且它不起作...

    uj5u.com 2022-05-27 18:57:33 more
  • 將時間轉換為另一個時區JS

    我正在獲取data.value格式中的時間:hh:mm a- 例如12:30 am。我也知道:用戶的本地時區 ( userTimeZone)地點的時區 ( venueTimeZone)我需要將用戶選擇的時間 (...

    uj5u.com 2022-05-27 18:56:48 more
  • 如何將CYYMM轉換為YYYY-MM

    我有一些格式為 CYYMM(例如 12012)的日期列。我想將這些轉換為 SQL Server 中的典型資料表示。供參考。C代表世紀。例如 12012 應該是 2020-12(2020 年 12 月)...

    uj5u.com 2022-05-27 18:55:14 more
  • 如何自動將日期格式更改為另一種日期格式

    目前我正在從 csv 檔案中捕獲日期,但日期欄位可以采用任何格式。我想將此日期轉換為僅 %Y-%m-%d 日期格式。但是用 strptime 是行不通的。例如:Csv Dates ---...

    uj5u.com 2022-05-27 18:54:34 more
  • Python:以第二個變數為條件將月份轉換為季度

    我問了同樣的問題R,我得到了答案,我也希望得到它Python。我有一個如下所示的資料集: tenor delivery_window <chr> <chr> 1 month Nov 22...

    uj5u.com 2022-05-27 18:53:55 more
  • 將日期轉換為整數在SparkSQL中回傳null

    我想使用 Spark SQL 將日期列轉換為整數。我正在關注我想要的是做同樣的轉換,但使用Spark SQL。我正在使用以下代碼:df.createOrReplaceTempView("date_to_in...

    uj5u.com 2022-05-27 18:52:13 more
  • 從其他選項卡獲取相關資料作為陣列以在其他選項卡中進行匯總

    想象一下有以下標簽。我想在每個鍵(示例中的房間名稱)的第二個選項卡中總結(比如說平均)。如何僅獲取按鍵匹配的值?VLOOKUP 只找到一個條目。
    uj5u.com熱心...

    uj5u.com 2022-05-27 18:51:25 more