Từ MongoDB 4.0, bạn có thể sử dụng $toString toán tử đường ống tổng hợp để chuyển đổi một giá trị thành một chuỗi.
Ví dụ
Giả sử chúng ta có một tập hợp được gọi là types 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 $toString toán tử để chuyển đổi tất cả các kiểu đó thành một chuỗi. Nếu đầu vào là một chuỗi thì nó chỉ trả về chuỗi.
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() 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 $convert toán tử thay vì $toString . $convert cho phép bạn xử lý các lỗi mà không ảnh hưởng đến toàn bộ hoạt động tổng hợp.
$toString toán tử tương đương với việc sử dụng $convert toán tử để chuyển đổi một giá trị thành một chuỗi.
Dưới đây là một ví dụ về việc sử dụng $convert để chuyển đổi một ngày thành một chuỗi ::
db.types.aggregate(
[
{
$project:
{
_id: 0,
result:
{
$convert: {
input: "$date",
to: "string",
onError: "An error occurred",
onNull: "Input was null or empty"
}
}
}
}
]
) Kết quả:
{ "result" : "2020-12-31T23:30:15.123Z" }
Xem MongoDB $convert để biết thêm ví dụ.