如何在MongoDB中更改欄位的型別?
讓我們以將字串型別轉換為整數為例。聚合不允許我們直接更改欄位的型別;因此,您需要編寫程式碼來轉換欄位的型別。
首先,建立一個包含文件的集合。之後我們將獲取每個欄位的型別。建立包含文件的集合的查詢如下所示
>db.changeDataType.insertOne({"StudentName":"Larry","StudentAge":23,"StudentZipCode":"
10001","isProgrammer":false});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6ed4976fd07954a4890694")
}使用find()方法顯示集合中的所有文件。查詢如下所示
> db.changeDataType.find().pretty();
以下是輸出
{
"_id" : ObjectId("5c6ed4976fd07954a4890694"),
"StudentName" : "Larry",
"StudentAge" : 23,
"StudentZipCode" : "10001",
"isProgrammer" : false
}現在讓我們檢查集合中每個欄位的型別。檢查每個欄位型別的查詢如下所示
> checkType=db.changeDataType.findOne();
{
"_id" : ObjectId("5c6ed4976fd07954a4890694"),
"StudentName" : "Larry",
"StudentAge" : 23,
"StudentZipCode" : "10001",
"isProgrammer" : false
}現在我們將使用上面的變數“checkType”來獲取每個變數的型別。查詢如下所示
> typeof checkType._id; object > typeof checkType.StudentName; string > typeof checkType.StudentAge; number > typeof checkType.StudentZipCode; string > typeof checkType.isProgrammer; boolean
現在,將“StudentZipCode”的型別從字串更改為數字型別。查詢如下所示
> db.changeDataType.find().forEach(function(ch)
... {
... db.changeDataType.update({
... "_id":ch._id},
... {"$set":
... {
... "StudentZipCode":parseInt(ch.StudentZipCode)
... }
... });
... });我已經將“StudentZipCode”的型別從字串更改為數字型別。為了驗證,讓我們按照上面所看到的步驟來檢查集合中欄位的型別
> againCheckType=db.changeDataType.findOne();
{
"_id" : ObjectId("5c6ed4976fd07954a4890694"),
"StudentName" : "Larry",
"StudentAge" : 23,
"StudentZipCode" : 10001,
"isProgrammer" : false
}使用上面的變數來檢查欄位的型別
> typeof againCheckType.StudentZipCode; number
現在檢視上面的輸出,“StudentZipCode”欄位已經從字串型別更改為數字型別。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP