婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MongoDB執行mongoexport時的異常及分析(數字類型的查詢)

MongoDB執行mongoexport時的異常及分析(數字類型的查詢)

熱門標簽:蘋果汽車租賃店地圖標注 電銷機器人是什么軟件 濟南電銷機器人加盟公司 杭州人工電銷機器人價格 老虎洗衣店地圖標注 廣州長安公司怎樣申請400電話 呼和浩特電銷外呼系統加盟 怎么投訴地圖標注 云南外呼系統

概述

mongoexport命令行用于數據的導出,默認導出的文件格式為JSON格式。當然也可以指定特定的文件格式。

語法

C:\mongo\bin>mongoexport -help
options:
  --help                  produce help message
  -v [ --verbose ]        be more verbose (include multiple times for more
                          verbosity e.g. -vvvvv)
  -h [ --host ] arg       mongo host to connect to ( set name>/s1,s2 for sets)
  --port arg              server port. Can also use --host hostname:port
  --ipv6                  enable IPv6 support (disabled by default)
  -u [ --username ] arg   username
  -p [ --password ] arg   password
  --dbpath arg            directly access mongod database files in the given
                          path, instead of connecting to a mongod  server -
                          needs to lock the data directory, so cannot be used
                          if a mongod is currently accessing the same path
  --directoryperdb        if dbpath specified, each db is in a separate
                          directory
  -d [ --db ] arg         database to use
  -c [ --collection ] arg collection to use (some commands)
  -f [ --fields ] arg     comma separated list of field names e.g. -f name,age
  --fieldFile arg         file with fields names - 1 per line
  -q [ --query ] arg      query filter, as a JSON string
  --csv                   export to csv instead of json
  -o [ --out ] arg        output file; if not specified, stdout is used
  --jsonArray             output to a json array rather than one object per
                          Line

說明:

  • -h:數據庫宿主機的IP
  • -u:數據庫用戶名
  • -p:數據庫密碼
  • -d:數據庫名字
  • -c:集合的名字
  • -f:導出的列名
  • -q:導出數據的過濾條件
  • --csv:導出格式為csv 

引言

今天在用mongoexport導出滿足一定條件下的數據時,遇到了一個報錯,現紀錄下來,并且針對此錯誤對MongoDB 的 數字類型做了進一步的學習。

背景 及 報錯信息

今天接到一個業務需求,需要從MongoDB 數據庫 order集合中導出符合以下條件的數據:

db.qqwj_order.find({"Source":NumberInt("21"),"Batch":"支付中的訂單提醒:2018/9/5","MsgContent":/還未完成在線付款/})

通過MongoDB 客戶端工具 【NoSQLBooster for MongoDB】查詢檢查,語句執行正常,顯示相應記錄數為 15265。

導出數據使用mongoexport命令,執行命令如下:

/data/mongodb/mongobin344/bin/mongoexport -h 172.X.X.XXX --port 端口 --db 數據庫 -u 賬號 -p '密碼' --authenticationDatabase 認證數據庫 --type=csv -c qqwj_order -f MsgContent,REC_CreateTime -q '{ "Source":NumberInt("21"),"Batch":"支付中的訂單提醒:2018/9/5","MsgContent":/還未完成在線付款/}' -o /data/mongodb_back/sms.csv

但是執行報錯:

XXX is not valid JSON: json: cannot unmarshal string into Go value of type json.NumberInt

錯誤截圖如下:

錯誤推斷及測試

因為報錯信息中NumberInt 關鍵字,此時去看我們的查詢條件正好也有此關鍵字,所以推測 是不是這個問題。

結果將導出命令中的 NumberInt("21") 直接替換為 21 ,再次執行。

執行命令為 :

/data/mongodb/mongobin344/bin/mongoexport -h 172.X.X.XXX --port 端口 --db 數據庫 -u 賬號 -p '密碼' --authenticationDatabase 認證數據庫 --type=csv -c qqwj_order -f MsgContent,REC_CreateTime -q '{"Source":21,"Batch":"支付中的訂單提醒:2018/9/5","MsgContent":/還未完成在線付款/}' -o /data/mongodb_back/sms.csv

執行結果為

結果表明修改后,數據成功導出。

錯誤解析與原理探究

為什么通過查詢器查看,數據就是 "Source" : NumberInt("21") ,但是在shell 中的執行導出命令寫成"Source" : NumberInt("21") 就會報錯。而一定要轉換為"Source":21

查詢器查詢出的Source字段顯示:

明明就是"Source" : NumberInt("21") ,為什么復制到shell,執行報錯???

回頭看,找原理。我們知道目前MongoDB 支持4中數據類型。

  • double
  • 32-bit integer
  • 64-bit integer
  • Decimal (New in version 3.4.)

在MongoDB客戶端可以執行查詢,但是在shell中無法執行導出,那么會不會和這兩種工具有關?會不會和插入的NumberInt(數字) 還是NumberInt('數字‘)有關?

下面對假設進行驗證測試。

通過 NoSQLBooster for MongoDB 方式 插入測試數據

通過 shell方式插入測試數據

通過$type 去查看插入的數據類型

1》執行db.numbers.find({n:{$type:1}}) // Type 為 Double;查詢Type 為 Double的數據

以上查詢結果顯示,不管是通過客戶端還是shell,當數字不指明數據類型時,插入的數字數據默認都是Double。

2》執行命令 db.numbers.find({n:{$type:16}}) // Type 為 32-bit integer ;查詢Type 為 32-bit integer的數據

以上查詢表名,不管通過客戶端還是shell,指定的NumberInt(5) 還是NumberInt('5‘) 后臺都轉成統一32-bit integer 類型存儲了。

3》執行命令 db.numbers.find({n:{$type:18}}) // Type 為 64-bit integer 查詢Type 為 64-bit integer的數據

以上查詢表名,不管通過客戶端還是shell,指定的NumberLong(5) 還是NumberLong('5') 后臺都轉成統一64-bit integer 類型存儲了。

以上的測試說明,當我們在存儲數字數據時會自動轉儲(不管什么客戶端工具,是shell還是 【NoSQLBooster for MongoDB】,不管 NumberLong(5) 還是NumberLong('5');NumberInt(5) 還是NumberInt('5‘))。

有點糊涂了吧? 如此這樣,那為什么 在查詢是報錯呢?

回頭再看錯誤提示:XXX is not valid JSON: json: cannot unmarshal string into Go value of type json.NumberInt。

其意思是shell 認為我們把一個字符類型的數據傳給了 json.NumberInt

那我如果將導出命令中的 NumberInt("21") 將 換成 NumberInt(21)

執行命令為 :

/data/mongodb/mongobin344/bin/mongoexport -h 172.X.X.XXX --port 端口 --db 數據庫 -u 賬號 -p '密碼' --authenticationDatabase 認證數據庫 --type=csv -c qqwj_order -f MsgContent,REC_CreateTime -q '{"Source": NumberInt(21),"Batch":"支付中的訂單提醒:2018/9/5","MsgContent":/還未完成在線付款/}' -o /data/mongodb_back/sms.csv

執行也成功。

結論

說了很多總結下:

執行失敗的導出命令是:

/data/mongodb/mongobin344/bin/mongoexport -h 172.X.X.XXX --port 端口 --db 數據庫 -u 賬號 -p '密碼' --authenticationDatabase 認證數據庫 --type=csv -c qqwj_order -f MsgContent,REC_CreateTime -q '{ "Source":NumberInt("21"),"Batch":"支付中的訂單提醒:2018/9/5","MsgContent":/還未完成在線付款/}' -o /data/mongodb_back/sms.csv

執行成功的導出命令是:

/data/mongodb/mongobin344/bin/mongoexport -h 172.X.X.XXX --port 端口 --db 數據庫 -u 賬號 -p '密碼' --authenticationDatabase 認證數據庫 --type=csv -c qqwj_order -f MsgContent,REC_CreateTime -q '{"Source":21,"Batch":"支付中的訂單提醒:2018/9/5","MsgContent":/還未完成在線付款/}' -o /data/mongodb_back/sms.csv

/data/mongodb/mongobin344/bin/mongoexport -h 172.X.X.XXX --port 端口 --db 數據庫 -u 賬號 -p '密碼' --authenticationDatabase 認證數據庫 --type=csv -c qqwj_order -f MsgContent,REC_CreateTime -q '{"Source": NumberInt(21),"Batch":"支付中的訂單提醒:2018/9/5","MsgContent":/還未完成在線付款/}' -o /data/mongodb_back/sms.csv

三個導出命令不同的地方已用紅色字體標注。

P.S 1 :后來作者深究了一下,為什么同樣的查詢,通樣的查詢結果,有的顯示 "n" : 5 ; 有的顯示 "n" : NumberInt("5")。嘻嘻 》》》》版本不同而已。

舊版本(部分)的顯示

新版本(例如nosqlbooster4mongo-4.7.1)的顯示

P.S 2 :在存儲數字數據時,到底會存儲為何種數據類型,其實和語言的的驅動有關。例如在Ruby 和 Python 語言里在序列化整數時,驅動會自動確定是否編碼為32-bit integer 還是64-bit integer;shell 需要顯示指定才可以。+

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • MongoDB使用mongoexport和mongoimport命令,批量導出和導入JSON數據到同一張表的實例
  • MongoDB mongoexport工具的使用簡介

標簽:無錫 廈門 興安盟 自貢 泰安 玉林 遼陽 雞西

巨人網絡通訊聲明:本文標題《MongoDB執行mongoexport時的異常及分析(數字類型的查詢)》,本文關鍵詞  MongoDB,執行,mongoexport,時,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB執行mongoexport時的異常及分析(數字類型的查詢)》相關的同類信息!
  • 本頁收集關于MongoDB執行mongoexport時的異常及分析(數字類型的查詢)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩影院免费视频| 成人欧美一区二区三区小说| www久久久久| 青青草一区二区三区| 亚洲福利电影网| 色偷偷一区二区三区| 亚洲日本va在线观看| 国产精品综合av一区二区国产馆| 欧美亚洲动漫另类| 亚洲色图欧洲色图| 欧美亚洲一区二区在线| 一区二区日韩电影| 欧美在线观看一区| 免费在线一区观看| 欧美mv日韩mv亚洲| 大胆亚洲人体视频| 国产精品免费丝袜| av在线这里只有精品| 亚洲国产精品成人综合色在线婷婷 | 国产99精品视频| 久久视频一区二区| 国产成人啪午夜精品网站男同| 久久久久久久久久看片| 国产iv一区二区三区| 中文字幕免费不卡在线| 欧美日韩成人综合| 成人精品电影在线观看| 日韩 欧美一区二区三区| 久久久久一区二区三区四区| 色国产综合视频| 激情成人综合网| 亚洲电影中文字幕在线观看| 国产综合久久久久久鬼色| 亚洲乱码国产乱码精品精98午夜 | 美女在线视频一区| 久久夜色精品一区| 夫妻av一区二区| 三级在线观看一区二区| 久久香蕉国产线看观看99| 国产精品一区二区黑丝| 国产欧美日韩一区二区三区在线观看 | 91精品国产综合久久福利软件| 婷婷夜色潮精品综合在线| 久久网站热最新地址| 91国偷自产一区二区使用方法| 亚洲电影在线免费观看| 精品少妇一区二区三区日产乱码| 色欧美88888久久久久久影院| 亚洲国产精品自拍| 国产精品久久一卡二卡| 日韩欧美一区二区久久婷婷| 国产成人午夜片在线观看高清观看| 国产精品久久久久影院亚瑟| 欧美日高清视频| 成人黄色小视频| 日本网站在线观看一区二区三区 | 夜夜亚洲天天久久| 欧美激情艳妇裸体舞| 欧美电影免费观看高清完整版在 | 日韩欧美在线网站| 欧美色倩网站大全免费| 色偷偷成人一区二区三区91| 91一区一区三区| 成人免费看片app下载| 国产乱码一区二区三区| 韩国v欧美v亚洲v日本v| 国产精品综合久久| 国产精品综合av一区二区国产馆| 无码av免费一区二区三区试看| 亚洲美女精品一区| 亚洲欧美一区二区三区孕妇| 成人免费在线观看入口| 国产色一区二区| 国产精品私房写真福利视频| 久久综合99re88久久爱| 欧美一级专区免费大片| 538prom精品视频线放| 久久久久久久av麻豆果冻| 777亚洲妇女| 日韩欧美在线一区二区三区| 日韩精品中文字幕一区二区三区 | 欧美日韩另类一区| 在线免费不卡电影| 日韩三级视频在线看| 久久综合五月天婷婷伊人| 久久精品亚洲精品国产欧美kt∨| 欧美成人综合网站| 久久综合999| 中文字幕一区二区三区四区不卡 | 午夜欧美大尺度福利影院在线看| 亚洲综合视频网| 一区二区三区四区五区视频在线观看| 尤物视频一区二区| 亚洲线精品一区二区三区| 最新成人av在线| 青青青伊人色综合久久| 大尺度一区二区| 欧美亚洲国产怡红院影院| 911精品国产一区二区在线| 久久久久国产一区二区三区四区| 久久久www成人免费毛片麻豆| 亚洲自拍偷拍av| 国产精品综合网| 欧美做爰猛烈大尺度电影无法无天| 91精品欧美久久久久久动漫 | 国产精品亚洲综合一区在线观看| 91网页版在线| 久久久亚洲午夜电影| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲一区二区三区四区中文字幕| 老司机精品视频导航| 日本韩国精品在线| 国产日韩欧美高清| 日韩成人午夜精品| 欧美性感一区二区三区| 国产精品乱码一区二三区小蝌蚪| 日韩高清在线一区| 欧美亚洲高清一区| 一区二区三区在线免费观看| 成人自拍视频在线| 久久精品亚洲一区二区三区浴池 | 5566中文字幕一区二区电影| 亚洲最大成人综合| 99精品热视频| 国产香蕉久久精品综合网| 久久成人综合网| 日韩一级欧美一级| 青青草伊人久久| 欧美一级国产精品| 青青草97国产精品免费观看无弹窗版| 91香蕉视频黄| 国产精品久久看| av一本久道久久综合久久鬼色| 国产日韩欧美麻豆| 国产成人h网站| 国产农村妇女精品| 成人av综合在线| 国产精品久久毛片| 91尤物视频在线观看| 一区在线中文字幕| 91丨porny丨中文| 亚洲午夜久久久久久久久电影院| 欧美午夜精品久久久| 午夜av区久久| 精品伦理精品一区| 国产成人精品影视| 中文字幕一区二区三区不卡| 欧洲一区二区三区免费视频| 日韩中文字幕av电影| 精品99一区二区| 91浏览器入口在线观看| 无码av免费一区二区三区试看| 日韩欧美一级精品久久| 国产精品一区二区男女羞羞无遮挡| 国产三级精品视频| 在线亚洲精品福利网址导航| 亚洲在线视频一区| 欧美一区二区三区婷婷月色| 国产喷白浆一区二区三区| 天天av天天翘天天综合网色鬼国产| 伊人一区二区三区| 欧美剧情片在线观看| 日本伊人精品一区二区三区观看方式| 欧美美女网站色| 国产精品一区二区免费不卡| 亚洲欧洲综合另类| 4hu四虎永久在线影院成人| 麻豆久久久久久| 亚洲色图欧洲色图| 欧美一区二区视频在线观看| 国产成+人+日韩+欧美+亚洲| 亚洲国产成人av| 亚洲国产精品激情在线观看 | 成人国产一区二区三区精品| 亚洲免费在线看| 亚洲精品一区二区三区四区高清| av在线综合网| 激情av综合网| 亚洲一区二区三区小说| 久久青草欧美一区二区三区| 成人精品gif动图一区| 中文字幕亚洲精品在线观看| 欧美日韩精品一区二区三区蜜桃| 国产精品18久久久久久久久久久久| 亚洲日韩欧美一区二区在线| 日韩欧美国产小视频| 色综合久久中文字幕综合网| 蜜臀av一区二区| 亚洲国产综合91精品麻豆| 国产视频在线观看一区二区三区| 777a∨成人精品桃花网| 色偷偷久久人人79超碰人人澡| 国产一区在线观看视频| 日日欢夜夜爽一区| 亚洲精品成a人| 国产精品欧美久久久久一区二区| 51精品视频一区二区三区| 欧洲亚洲精品在线| 在线看国产一区二区| a4yy欧美一区二区三区|