Làm cách nào để chuyển đổi int thành chuỗi trong MongoDB?

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ỗi

Thí 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ỗ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 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ợp

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 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ố 8

Sau đâ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.

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()
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)

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ả

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()
31

1

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()
32

0

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()
33

1

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()
34

5

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()
35

Lỗ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()
36

5000

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()
37

Lỗ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()
38

-2

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()
39

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()
3

Hoạ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

Làm cách nào để chuyển đổi id MongoDB thành chuỗi?

toString() — Hướng dẫn sử dụng MongoDB. .
Tạo một ObjectId() mới và lưu trữ nó trong biến myObjectId
Tạo một biểu diễn chuỗi của myObjectId bằng phương thức toString()
Lưu trữ biểu diễn chuỗi trong biến myObjectIdString

Làm cách nào để chuyển đổi kiểu dữ liệu trong MongoDB?

Trong MongoDB, bạn có thể sử dụng toán tử đường ống tổng hợp $convert để 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.

Làm cách nào để chuyển đổi mảng thành chuỗi trong MongoDB?

updateOne( { _id. tài liệu. _id }, { $set. { ID sản phẩm. tài liệu. productId } } ) ); Bản cập nhật này sẽ hoạt động để chuyển đổi giá trị mảng thành chuỗi - tính năng này hoạt động với MongoDB 4. Chỉ có 2 phiên bản trở lên.

Làm cách nào để chuyển đổi ObjectId thành chuỗi trong tập hợp MongoDB?

toString() method để chuyển đổi ObjectId của bạn thành chuỗi. Trước tiên, bạn khớp và chiếu ObjectID của mình. Sau đó, bạn có thể chuyển đổi ID đối tượng này thành chuỗi bằng cách sử dụng ObjectID. toString().