Từ MongoDB 4. 0, bạn có thể sử dụng toán tử đường dẫn tổng hợp
db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
0 để chuyển đổi giá trị thành chuỗiThí dụ
Giả sử chúng ta có một bộ sưu tập tên là
db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
1 và nó chứa tài liệu sau{ "_id" : ObjectId["60123a54c8eb4369cf6ad9d6"], "double" : 123.75, "string" : "123", "boolean" : true, "date" : ISODate["2020-12-31T23:30:15.123Z"], "integer" : 123, "long" : NumberLong[123], "decimal" : NumberDecimal["123.75"] }
Chúng ta có thể sử dụng toán tử
db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
0 để chuyển đổi tất cả các loại đó thành một chuỗi. Nếu đầu vào là một chuỗi, thì nó chỉ trả về chuỗidb.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
Kết quả
{ "objectId" : "60123a54c8eb4369cf6ad9d6", "double" : "123.75", "string" : "123", "boolean" : "true", "date" : "2020-12-31T23:30:15.123Z", "integer" : "123", "long" : "123", "decimal" : "123.75" }
lỗi
Nếu bạn gặp lỗi, hãy thử sử dụng toán tử
db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
3 thay vì db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
0. Toán tử db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
0 cho phép bạn xử lý lỗi mà không ảnh hưởng đến toàn bộ hoạt động tổng hợpToán tử
db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
0 tương đương với việc sử dụng toán tử db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
0 để chuyển đổi một giá trị thành một chuỗi Trong MongoDB, bạn có thể sử dụng toán tử đường dẫn tổng hợp
{ "_id" : ObjectId["6011e471c8eb4369cf6ad9d5"], "result" : "6011e471c8eb4369cf6ad9d5" }6 để chuyển đổi một giá trị thành một loại được chỉ định
Bạn có thể chuyển đổi bất kỳ biểu thức hợp lệ nào thành kép, chuỗi, ObjectId, boolean, Ngày, số nguyên, dài hoặc thập phân
Không phải tất cả các loại có thể được chuyển đổi sang bất kỳ loại nào khác. Một số loại chỉ có thể được chuyển đổi từ một tập hợp con của các loại MongoDB có sẵn. Ví dụ: bạn không thể chuyển đổi ngày thành số nguyên
Bạn có thể tùy chọn sử dụng tham số
{ "_id" : ObjectId["6011e471c8eb4369cf6ad9d5"], "result" : "6011e471c8eb4369cf6ad9d5" }8 để chỉ định nội dung trả về nếu giá trị đầu vào là null hoặc bị thiếu
Hãy để chúng tôi xem một ví dụ để hiểu về $toString trong MongoDB. Để hiểu khái niệm trên, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với một tài liệu như sau -
> db.objectidToStringDemo.insertOne[{"UserName":"John"}]; { "acknowledged" : true, "insertedId" : ObjectId["5c92b80036de59bd9de0639d"] } > db.objectidToStringDemo.insertOne[{"UserName":"Chris"}]; { "acknowledged" : true, "insertedId" : ObjectId["5c92b80436de59bd9de0639e"] } > db.objectidToStringDemo.insertOne[{"UserName":"Larry"}]; { "acknowledged" : true, "insertedId" : ObjectId["5c92b80936de59bd9de0639f"] } > db.objectidToStringDemo.insertOne[{"UserName":"Robert"}]; { "acknowledged" : true, "insertedId" : ObjectId["5c92b81836de59bd9de063a0"] }
Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find[]. Truy vấn như sau -
________số 8Sau đây là đầu ra -
{ "_id" : ObjectId["5c92b80036de59bd9de0639d"], "UserName" : "John" } { "_id" : ObjectId["5c92b80436de59bd9de0639e"], "UserName" : "Chris" } { "_id" : ObjectId["5c92b80936de59bd9de0639f"], "UserName" : "Larry" } { "_id" : ObjectId["5c92b81836de59bd9de063a0"], "UserName" : "Robert" }
Đây là truy vấn để chuyển đổi ObjectId thành giá trị chuỗi trong MongoDB tổng hợp. Truy vấn như sau -
Bạn không thể chuyển đổi một giá trị kép có giá trị bị cắt bớt nhỏ hơn giá trị số nguyên tối thiểu hoặc lớn hơn giá trị số nguyên tối đa
Số thập phân
Trả về giá trị bị cắt bớt Giá trị thập phân bị cắt ngắn phải nằm trong giá trị tối thiểu và tối đa cho một số nguyên Bạn không thể chuyển đổi giá trị thập phân có giá trị bị cắt bớt nhỏ hơn giá trị số nguyên tối thiểu hoặc lớn hơn giá trị số nguyên tối đa
số nguyên
Không ra đâu. Trả về giá trị số nguyên
Dài
Trả về giá trị dài dưới dạng số nguyên Giá trị dài phải nằm trong giá trị tối thiểu và tối đa cho một số nguyên Bạn không thể chuyển đổi một giá trị dài nhỏ hơn giá trị số nguyên tối thiểu hoặc lớn hơn giá trị số nguyên tối đa
Sợi dây
Trả về giá trị số của chuỗi dưới dạng số nguyên Giá trị chuỗi phải là số nguyên cơ số 10; . g.
07, db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
08]db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
Bạn không thể chuyển đổi giá trị chuỗi của số thực hoặc số thập phân hoặc số không phải cơ số 10 [e. g.
db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
09, db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
30]Bảng sau đây liệt kê một số ví dụ chuyển đổi sang số nguyên
Thí dụ
Kết quả
31db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
1
32db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
0
33db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
1
34db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
5
35db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
Lỗi
36db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
5000
37db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
Lỗi
38db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
-2
39db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
Lỗi
{
"objectId" : "60123a54c8eb4369cf6ad9d6",
"double" : "123.75",
"string" : "123",
"boolean" : "true",
"date" : "2020-12-31T23:30:15.123Z",
"integer" : "123",
"long" : "123",
"decimal" : "123.75"
}
30
vô giá trị
Thí dụ
Tạo bộ sưu tập
{ "objectId" : "60123a54c8eb4369cf6ad9d6", "double" : "123.75", "string" : "123", "boolean" : "true", "date" : "2020-12-31T23:30:15.123Z", "integer" : "123", "long" : "123", "decimal" : "123.75" }31 với các tài liệu sau
db.types.aggregate[
[
{
$project:
{
_id: 0,
objectId: { $toString: "$_id" },
double: { $toString: "$double" },
string: { $toString: "$string" },
boolean: { $toString: "$boolean" },
date: { $toString: "$date" },
integer: { $toString: "$integer" },
long: { $toString: "$long" },
decimal: { $toString: "$decimal" }
}
}
]
].pretty[]
3Hoạt động tổng hợp sau đây
chuyển đổi
{ "objectId" : "60123a54c8eb4369cf6ad9d6", "double" : "123.75", "string" : "123", "boolean" : "true", "date" : "2020-12-31T23:30:15.123Z", "integer" : "123", "long" : "123", "decimal" : "123.75" }
32 thành một số nguyên,chuyển đổi
{ "objectId" : "60123a54c8eb4369cf6ad9d6", "double" : "123.75", "string" : "123", "boolean" : "true", "date" : "2020-12-31T23:30:15.123Z", "integer" : "123", "long" : "123", "decimal" : "123.75" }
33 thành số thập phân,tính tổng giá
{ "objectId" : "60123a54c8eb4369cf6ad9d6", "double" : "123.75", "string" : "123", "boolean" : "true", "date" : "2020-12-31T23:30:15.123Z", "integer" : "123", "long" : "123", "decimal" : "123.75" }3
Hoạt động trả về các tài liệu sau
{ "objectId" : "60123a54c8eb4369cf6ad9d6", "double" : "123.75", "string" : "123", "boolean" : "true", "date" : "2020-12-31T23:30:15.123Z", "integer" : "123", "long" : "123", "decimal" : "123.75" }9
Ghi chú
Nếu thao tác chuyển đổi gặp lỗi, thao tác tổng hợp sẽ dừng và đưa ra lỗi. Để ghi đè hành vi này, thay vào đó hãy sử dụng