MongoDB更改欄位型別
更改String型別為Date型別
db.getCollection('bond_sentiment_bulletin').find({'pubDate': {$type:2}}).forEach(
function(doc){
db.getCollection('bond_sentiment_bulletin').update({'_id': doc._id},{$set:{'pubDate': new ISODate(doc.pubDate)}})
}
)
or
db.getCollection('bond_sentiment_bulletin').find({'pubDate': {$type:2}}).forEach(
function(doc){
doc.pubDate = new ISODate(doc.pubDate);
db.getCollection('bond_sentiment_bulletin').save(doc);
}
)
更改Date型別為String型別
db.getCollection('bond_sentiment_bulletin').find({"_id" : 416,'pubDate':{$type:9}}).forEach(
function(x){
x.pubDate = x.pubDate.toISOString();
db.getCollection('bond_sentiment_bulletin').save(x);
}
)
將型別轉為str
db.getCollection('bond_sentiment_bulletin').find({"_id" : 419}).forEach(
function(x){
x.status = String(x.status);
db.getCollection('bond_sentiment_bulletin').save(x);
}
)
擷取字串長度
db.getCollection('bond_sentiment_bulletin').find({"_id" : 416,'pubDate':{$type:2}}).forEach(
function(x){
x.pubDate = x.pubDate.substr(0,10);
db.getCollection('bond_sentiment_bulletin').save(x);
}
)
更改Date型別為String型別,並擷取字串長度
db.getCollection('bond_sentiment_bulletin').find({"_id" : 416,'pubDate':{$type:2}}).forEach(
function(x){
x.pubDate = x.pubDate.toISOString().substr(0,10);
db.getCollection('bond_sentiment_bulletin').save(x);
}
)
把時間型別轉為NumberLong的時間戳型別
db.getCollection('bond_sentiment_bulletin').find({"_id" : 419,'pubDate':{$type:9}}).forEach(
function(x){
x.pubDate = NumberLong(x.pubDate.getTime()/1000);
db.getCollection('bond_sentiment_bulletin').save(x);
}
)
設定欄位為int型別,NumberInt(3),預設是double型別
db.getCollection('bond_sentiment_bulletin').find({"sentiment" : null}).forEach(
function(item){
db.getCollection('bond_sentiment_bulletin').update({"_id":item._id},{$set:{"sentiment":NumberInt(3)}})
}
)
修改double型別為int型別
db.getCollection('bond_sentiment_bulletin').find({'sentiment' : { $type : 1 }}).forEach(
function(x) {
x.sentiment = NumberInt(x.sentiment);
db.getCollection('bond_sentiment_bulletin').save(x);
}
)
字串轉為浮點數
db.getCollection('bond_sentiment_bulletin').find({'editTime': {$type:2}}).forEach(
function(doc){
db.getCollection('bond_sentiment_bulletin').update({'_id': doc._id},{$set:{'editTime': parseFloat(doc.editTime)}})
}
)
字串轉為double
db.getCollection('bond_sentiment_bulletin').find({'editTime': {$type:2}}).forEach(
function(doc){
db.getCollection('bond_sentiment_bulletin').update({'_id': doc._id},{$set:{'editTime': parseInt(doc.editTime)}})
}
)
欄位型別type的對應表如下:
欄位型別編號:
1 Double 浮點型
2 String UTF-8字串都可表示為字串型別的資料
3 Object 物件,巢狀另外的文件
4 Array 值的集合或者列表可以表示成陣列
5 Binary data 二進位制
7 Object id 物件id是文件的12位元組的唯一 ID 系統預設會自動生成
8 Boolean 布林型別有兩個值TRUE和FALSE
9 Date 日期型別儲存的是從標準紀元開始的毫秒數。不儲存時區
10 Null 用於表示空值或者不存在的欄位
11 Regular expression 採用js 的正規表示式語法
13 JavaScript code 可以存放Javasript 程式碼
14 Symbol 符號
15 JavaScript code with scope
16 32-bit integer 32位整數型別
17 Timestamp 特殊語義的時間戳資料型別
18 64-bit integer 64位整數型別
instanceof函式,判斷某個欄位是某個型別
count=0;
db.getCollection('bond_sentiment_bulletin').find({"_id" : 423}).forEach(function(x){if(x.pubDate instanceof Date){count++}});
print(count);
查詢address欄位資料型別為字串
db.getCollection('bond_sentiment_bulletin').find({address:{$type:2}}) //查詢address欄位資料型別為字串
db.getCollection('bond_sentiment_bulletin').find({address:{$type:"string"}}) //查詢address欄位資料型別為字串
查詢附件某個欄位存在的
db.getCollection('bond_sentiment_bulletin').find({'_id':{$gte:587863,$lte:800000},"isPrimary" : 0,'attach':{$elemMatch:{'UpdateTime': {$exists :true}}}})
MongoDB支援許多資料型別的列表下面給出:
- String : 這是最常用的資料型別來儲存資料。在MongoDB中的字串必須是有效的UTF-8。
- Integer : 這種型別是用來儲存一個數值。整數可以是32位或64位,這取決於您的伺服器。
- Boolean : 此型別用於儲存一個布林值 (true/ false) 。
- Double : 這種型別是用來儲存浮點值。
- Min/ Max keys : 這種型別被用來對BSON元素的最低和最高值比較。
- Arrays : 使用此型別的陣列或列表或多個值儲存到一個鍵。
- Timestamp : 時間戳。這可以方便記錄時的檔案已被修改或新增。
- Object : 此資料型別用於嵌入式的檔案。
- Null : 這種型別是用來儲存一個Null值。
- Symbol : 此資料型別用於字串相同,但它通常是保留給特定符號型別的語言使用。
- Date : 此資料型別用於儲存當前日期或時間的UNIX時間格式。可以指定自己的日期和時間,日期和年,月,日到建立物件。
- Object ID : 此資料型別用於儲存文件的ID。
- Binary data : 此資料型別用於儲存二進位制資料。
- Code : 此資料型別用於儲存到文件中的JavaScript程式碼。
- Regular expression : 此資料型別用於儲存正規表示式
官網參考:https://docs.mongodb.com/manual/reference/operator/query/type/index.html
參考:
https://blog.csdn.net/laoyang360/article/details/72594344
https://blog.csdn.net/haiyanggeng/article/details/80250117
https://blog.csdn.net/liangxw1/article/details/78982320
https://blog.csdn.net/xiongzaiabc/article/details/81909771
相關文章
- sql語句修改欄位型別和增加欄位SQL型別
- ES Mapping ,1 欄位型別APP型別
- MySQL欄位型別最全解析MySql型別
- 【mongo】mongo 欄位型別互轉Go型別
- MySQL欄位新增註釋,但不改變欄位的型別MySql型別
- [提問交流]建立模型,新增屬性,欄位型別如何設定2位小數的欄位型別模型型別
- mongodb如何改_id欄位?MongoDB
- mysql表操作(alter)/mysql欄位型別MySql型別
- Oracle 修改欄位型別和長度Oracle型別
- MySQL中TEXT與BLOB欄位型別的區別MySql型別
- mongodb 取欄位最大值MongoDB
- JSON欄位型別在ORM中的使用JSON型別ORM
- PHP 操作 mysql blob 資料型別的欄位PHPMySql資料型別
- MongoDB Oplog中的欄位介紹MongoDB
- SqlSugar code first 欄位為列舉型別,預設生成資料庫欄位為bigint如何設定為int型別SqlSugar型別資料庫
- 多型關聯自定義的型別欄位的處理多型型別
- 欄位管理,為什麼只有新增的時候才自動匹配欄位型別型別
- Java資料型別與資料庫欄位型別對應關係Java資料型別資料庫
- MySQL VARCHAR型別欄位到底可以定義多長MySql型別
- ORANCLE 資料已存在,修改欄位型別長度型別
- 關於mysql中欄位定義的型別int、tinyint區別MySql型別
- SAP WM中階儲存型別裡的Full stk rmvl 欄位和Return Storage type欄位型別
- 資料庫中欄位資料型別以及約束資料庫資料型別
- MYSQL SET型別欄位的SQL操作知識介紹MySql型別
- mysql和mongodb替換欄位中某字元MySqlMongoDB字元
- MongoDB(13)- 查詢操作返回指定的欄位MongoDB
- SQL字元型欄位按數字型欄位排序實現方法SQL字元排序
- MongoDB日期型別查詢MongoDB型別
- SQL中欄位比較型別不匹配錯誤:‘cannot be cast to’SQL型別AST
- MongoDB更改oplog大小MongoDB
- mssql sqlserver 可以儲存二進位制資料的欄位型別詳解SQLServer型別
- Laravel 對於 Mysql 欄位string型別查詢,當使用數字對這個欄位進行查詢,PHP弱型別語言導致索引失效LaravelMySql型別PHP索引
- 查詢mysql某張表中的所有資料(欄位)型別MySql型別
- (原創)odoo17下 integer型別欄位格式化控制Odoo型別
- 地理位置經緯度在Mysql中用什麼欄位型別MySql型別
- 支援 enum 型別的欄位允許為空插入資料庫型別資料庫
- Mysql varchar型別欄位為什麼經常定義為255MySql型別
- MySQL把字串欄位轉換為日期型別進行比較MySql字串型別