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ụ.