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

Tôi đang cố lấy danh sách thành viên. Trong mongodb mảng là một danh sách các ObjectIds. Nhưng khi tôi chạy truy vấn thì không tìm thấy gì. Tôi biết ID thực tế là hợp lệ. Có thể có một số người dùng đã bị xóa, nhưng hầu hết trong số họ vẫn tồn tại.
Trên máy chủ của chúng tôi, chúng tôi đang tạo truy vấn bằng Mongoose và nó hoạt động tốt, nhưng tôi không chắc cách thực hiện điều đó ở đây. Có vẻ như các tùy chọn của tôi là chuyển đổi chuỗi thành đối tượng trong truy vấn của người dùng hoặc dữ liệu gốc dưới dạng trình biến đổi sau truy vấn trên nguồn dữ liệu. Tôi đã thử một vài lần, nhưng tôi không chắc liệu mình có đang đi đúng hướng hay không.

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

Truy vấn này hoạt động, nhưng truy vấn đó dành cho một người dùng và tôi có thể chỉ định truy vấn đó phải được coi là $oid

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

Không bắt buộc. Giá trị trả về khi gặp lỗi trong quá trình chuyển đổi, bao gồm cả chuyển đổi loại không được hỗ trợ. Các đối số có thể là bất kỳ hợp lệ

Nếu không được chỉ định, thao tác sẽ đưa ra lỗi khi gặp lỗi và dừng lại

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
4

Không bắt buộc. Giá trị trả về nếu

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
1 là null hoặc bị thiếu. Các đối số có thể là bất kỳ hợp lệ

Nếu không được chỉ định, trả về null nếu

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
1 là null hoặc bị thiếu

Ngoài , MongoDB cung cấp các toán tử tổng hợp sau dưới dạng tốc ký khi hành vi "onError" và "onNull" mặc định được chấp nhận

Cư xử

Chuyển đổi thành Boolean

Bảng sau liệt kê các loại đầu vào có thể được chuyển đổi thành boolean

Kiểu đầu vào

Cư xử

Boolean

Không ra đâu. Trả về giá trị boolean

Gấp đôi

Trả về true nếu không bằng không

Trả về false nếu không

Số thập phân

Trả về true nếu không bằng không

Trả về false nếu không

số nguyên

Trả về true nếu không bằng không

Trả về false nếu không

Dài

Trả về true nếu không bằng không

Trả về false nếu không

ID đối tượng

Trả về đúng

Chuỗi

Trả về đúng

Ngày tháng

Trả về đúng

dấu thời gian

Trả về đúng

Bảng sau đây liệt kê một số chuyển đổi sang ví dụ boolean

Ví dụ

Kết quả

{ input: true, to: "bool" }

thật

{ input: false, to: "bool" }

sai

{ input: 1.99999, to: "bool" }

thật

{ input: Decimal128( "5" ), to: "bool" }

thật

{ input: Decimal128( "0" ), to: "bool" }

sai

________số 8

thật

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}

thật

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
0

thật

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
1

thật

{ input: true, to: "bool" }
0

thật

{ input: true, to: "bool" }
1

vô giá trị

Mẹo

Xem thêm

Chuyển đổi thành số nguyên

Bảng sau liệt kê các loại đầu vào có thể được chuyển đổi thành số nguyên

Kiểu đầu vào

Cư xử

Boolean

Trả về

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
08 cho
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
09

Trả về

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
10 cho
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
11

Gấp đôi

Trả về giá trị bị cắt bớt

Giá trị gấp đôi 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 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

Chuỗi

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 (e. g.

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
12,
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
13) và nằm trong giá trị nhỏ nhất và lớn nhất của một số nguyên

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.

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
14,
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
15) hoặc một giá trị nằm ngoài giá trị tối thiểu và tối đa cho một số nguyên

Bảng sau đây liệt kê một số ví dụ chuyển đổi sang số nguyên

Ví dụ

Kết quả

{ input: true, to: "bool" }
2

1

{ input: true, to: "bool" }
3

0

{ input: true, to: "bool" }
4

1

{ input: true, to: "bool" }
5

5

{ input: true, to: "bool" }
6

Lỗi

{ input: true, to: "bool" }
7

5000

{ input: true, to: "bool" }
8

Lỗi

{ input: true, to: "bool" }
9

-2

{ input: false, to: "bool" }
0

Lỗi

{ input: false, to: "bool" }
1

vô giá trị

Mẹo

Xem thêm

nhà điều hành

Chuyển đổi thành số thập phân

Bảng sau liệt kê các loại đầu vào có thể được chuyển đổi thành số thập phân

Kiểu đầu vào

Cư xử

Boolean

Trả về

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
17 cho
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
09

Trả về

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
19 cho
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
11

Gấp đôi

Trả về giá trị gấp đôi dưới dạng số thập phân

Số thập phân

Không ra đâu. Trả về số thập phân

số nguyên

Trả về giá trị int dưới dạng số thập phân

Dài

Trả về giá trị dài dưới dạng số thập phân

Chuỗi

Trả về giá trị số của chuỗi dưới dạng số thập phân

Giá trị chuỗi phải là giá trị số cơ số 10 (e. g.

{ input: true, to: "bool" }
01,
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
13)

Bạn không thể chuyển đổi một giá trị chuỗi của một số không phải cơ số 10 (e. g.

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
15)

Ngày tháng

Trả về số mili giây kể từ kỷ nguyên tương ứng với giá trị ngày

Bảng sau đây liệt kê một số ví dụ chuyển đổi sang số thập phân

Ví dụ

Kết quả

{ input: false, to: "bool" }
2

Thập phân128("1")

{ input: false, to: "bool" }
3

Thập phân128("0")

{ input: false, to: "bool" }
4

Thập phân128("2. 50000000000000")

{ input: false, to: "bool" }
5

Thập phân128("5")

{ input: false, to: "bool" }
6

Thập phân128("10000")

{ input: false, to: "bool" }
7

Thập phân128("-5. 5")

{ input: false, to: "bool" }
8

Thập phân128("1522039108044")

Mẹo

Xem thêm

Chuyển đổi thành Double

Bảng sau đây liệt kê các loại đầu vào có thể được chuyển đổi thành kiểu kép

Kiểu đầu vào

Cư xử

Boolean

Trả về NumberDouble(0) cho

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
09

Trả về NumberDouble(1) cho

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
11

Gấp đôi

Không ra đâu. Trả về gấp đôi

Số thập phân

Trả về giá trị thập phân dưới dạng gấp đôi

Giá trị thập phân phải nằm trong phạm vi giá trị tối thiểu và tối đa để tăng gấp đôi

Bạn không thể chuyển đổi giá trị thập phân có giá trị nhỏ hơn giá trị kép tối thiểu hoặc lớn hơn giá trị kép tối đa

số nguyên

Trả về giá trị int dưới dạng gấp đôi

Dài

Trả về giá trị dài dưới dạng gấp đôi

Chuỗi

Trả về giá trị số của chuỗi dưới dạng gấp đôi

Giá trị chuỗi phải là giá trị số cơ số 10 (e. g.

{ input: true, to: "bool" }
01,
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
13) và nằm trong giá trị tối thiểu và tối đa cho giá trị gấp đôi

Bạn không thể chuyển đổi một giá trị chuỗi của một số không phải cơ số 10 (e. g.

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
15) hoặc một giá trị nằm ngoài giá trị tối thiểu và tối đa cho giá trị gấp đôi

Ngày tháng

Trả về số mili giây kể từ kỷ nguyên tương ứng với giá trị ngày

Bảng sau đây liệt kê một số ví dụ chuyển đổi sang gấp đôi

Ví dụ

Kết quả

{ input: false, to: "bool" }
9

1

{ input: 1.99999, to: "bool" }
0

0

{ input: 1.99999, to: "bool" }
1

2. 5

{ input: 1.99999, to: "bool" }
2

5

{ input: 1.99999, to: "bool" }
3

10000

{ input: 1.99999, to: "bool" }
4

-5. 5

{ input: 1.99999, to: "bool" }
5

50000000000

{ input: 1.99999, to: "bool" }
6

1522039108044

Mẹo

Xem thêm

Chuyển đổi thành Long

Bảng sau liệt kê các loại đầu vào có thể được chuyển đổi thành dạng dài

Kiểu đầu vào

Cư xử

Boolean

Trả về

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
08 cho
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
09

Trả về

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
10 cho
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
11

Gấp đôi

Trả về giá trị bị cắt bớt

Giá trị gấp đôi bị cắt ngắn phải nằm trong giá trị tối thiểu và tối đa trong một thời gian dài

Bạn không thể chuyển đổi một giá trị kép có giá trị bị cắt nhỏ hơn giá trị dài tối thiểu hoặc lớn hơn giá trị dài 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 trong một thời gian dài

Bạn không thể chuyển đổi giá trị thập phân có giá trị bị cắt nhỏ hơn giá trị dài tối thiểu hoặc lớn hơn giá trị dài tối đa

số nguyên

Trả về giá trị int dưới dạng long

Dài

Không ra đâu. Trả về giá trị dài

Chuỗi

Trả về giá trị số của chuỗi

Giá trị chuỗi phải có độ dài cơ số 10 (e. g.

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
12,
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
13) và nằm trong giá trị tối thiểu và tối đa trong một thời gian dài

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.

{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
14,
{   input: ISODate( "2018-03-26T04:38:28.044Z" ),   to: "bool"}
15) hoặc giá trị nằm ngoài giá trị tối thiểu và tối đa trong một thời gian dài

Ngày tháng

Chuyển đổi Ngày thành số mili giây kể từ kỷ nguyên

Bảng sau đây liệt kê một số chuyển đổi thành các ví dụ dài

Ví dụ

Kết quả

{ input: 1.99999, to: "bool" }
7

Dài("1")

{ input: 1.99999, to: "bool" }
8

Dài("0")

{ input: 1.99999, to: "bool" }
9

Dài("2")

{ input: Decimal128( "5" ), to: "bool" }
0

Dài("5")

{ input: Decimal128( "5" ), to: "bool" }
1

Lỗi

{ input: Decimal128( "5" ), to: "bool" }
2

Dài("8")

{ input: Decimal128( "5" ), to: "bool" }
3

Dài("1522039108044")

{ input: Decimal128( "5" ), to: "bool" }
4

Dài("-2")

{ input: Decimal128( "5" ), to: "bool" }
5

Lỗi

{ input: Decimal128( "5" ), to: "bool" }
6

vô giá trị

Mẹo

Xem thêm

Chuyển đổi thành một ngày

Bảng sau đây liệt kê các loại đầu vào có thể được chuyển đổi thành ngày tháng

Kiểu đầu vào

Cư xử

Gấp đôi

Trả về một ngày tương ứng với số mili giây được biểu thị bằng giá trị kép bị cắt ngắn

Số dương tương ứng với số mili giây kể từ ngày 1 tháng 1 năm 1970

Số âm tương ứng với số mili giây trước ngày 1 tháng 1 năm 1970

Số thập phân

Trả về một ngày tương ứng với số mili giây được biểu thị bằng giá trị thập phân bị cắt ngắn

Số dương tương ứng với số mili giây kể từ ngày 1 tháng 1 năm 1970

Số âm tương ứng với số mili giây trước ngày 1 tháng 1 năm 1970

Dài

Trả về một ngày tương ứng với số mili giây được biểu thị bằng giá trị dài

Số dương tương ứng với số mili giây kể từ ngày 1 tháng 1 năm 1970

Số âm tương ứng với số mili giây trước ngày 1 tháng 1 năm 1970

Chuỗi

Trả về một ngày tương ứng với chuỗi ngày

Chuỗi phải là một chuỗi ngày hợp lệ, chẳng hạn như

  • "2018-03-03"

  • "2018-03-03T12. 00. 00Z"

  • "2018-03-03T12. 00. 00+0500"

ID đối tượng

Trả về một ngày tương ứng với dấu thời gian của ObjectId

dấu thời gian

Trả về một ngày tương ứng với dấu thời gian

Bảng sau đây liệt kê một số ví dụ chuyển đổi sang ngày

Ví dụ

Kết quả

{ input: Decimal128( "5" ), to: "bool" }
7

ISODate("1973-10-20T21. 20. 00. 000Z")

{ input: Decimal128( "5" ), to: "bool" }
8

ISODate("2009-09-19T14. 53. 56. 000Z")

{ input: Decimal128( "5" ), to: "bool" }
9

ISODate("2004-11-09T11. 33. 20. 000Z")

{ input: Decimal128( "0" ), to: "bool" }
0

ISODate("1935-02-22T12. 26. 40. 000Z")

{ input: Decimal128( "0" ), to: "bool" }
1

ISODate("2018-03-27T04. 08. 58. 000Z")

{ input: Decimal128( "0" ), to: "bool" }
2

ISODate("2018-03-03T00. 00. 00. 000Z")

{ input: Decimal128( "0" ), to: "bool" }
3

ISODate("2018-03-20T06. 00. 06. 000Z")

{ input: Decimal128( "0" ), to: "bool" }
4

Lỗi

{ input: Decimal128( "0" ), to: "bool" }
5

ISODate("2021-11-23T17. 21. 58. 000Z")

Mẹo

Xem thêm

  • nhà điều hành

Chuyển đổi thành ObjectId

Bảng sau liệt kê các loại đầu vào có thể được chuyển đổi thành ObjectId

Kiểu đầu vào

Cư xử

Chuỗi

Trả về một ObjectId cho chuỗi thập lục phân có độ dài 24

Bạn không thể chuyển đổi giá trị chuỗi không phải là chuỗi thập lục phân có độ dài 24

Bảng sau đây liệt kê một số ví dụ chuyển đổi sang ngày

Ví dụ

Kết quả

{ input: Decimal128( "0" ), to: "bool" }
6

ObjectId("5ab9cbfa31c2ab715d42129e")

{ input: Decimal128( "0" ), to: "bool" }
7

Lỗi

Mẹo

Xem thêm

nhà điều hành

Chuyển đổi thành Chuỗi

Bảng sau liệt kê các loại đầu vào có thể được chuyển đổi thành chuỗi

Kiểu đầu vào

Cư xử

Boolean

Trả về giá trị boolean dưới dạng chuỗi

Gấp đôi

Trả về giá trị kép dưới dạng chuỗi

Số thập phân

Trả về giá trị thập phân dưới dạng chuỗi

số nguyên

Trả về giá trị số nguyên dưới dạng chuỗi

Dài

Trả về giá trị dài dưới dạng chuỗi

ID đối tượng

Trả về giá trị ObjectId dưới dạng chuỗi thập lục phân

Chuỗi

Không ra đâu. Trả về giá trị chuỗi

Ngày tháng

Trả về ngày dưới dạng chuỗi

Bảng sau đây liệt kê một số ví dụ chuyển đổi thành chuỗi

Ví dụ

Kết quả

{ input: Decimal128( "0" ), to: "bool" }
8

"thật"

{ input: Decimal128( "0" ), to: "bool" }
9

"sai"

{ input: 100, to: "bool" }
0

"2. 5"

{ input: 100, to: "bool" }
1

"2"

{ input: 100, to: "bool" }
2

"1000"

{ input: 100, to: "bool" }
3

"5ab9c3da31c2ab715d421285"

{ input: 100, to: "bool" }
4

"2018-03-27T16. 58. 51. 538Z"

Mẹo

Xem thêm

  • nhà điều hành

Ví dụ

Tạo bộ sưu tập

{ input: true, to: "bool" }
25 với các tài liệu sau

{ input: 100, to: "bool" }
5

Hoạt động tổng hợp sau trên bộ sưu tập

{ input: true, to: "bool" }
25 chuyển đổi
{ input: true, to: "bool" }
27 thành số thập phân

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.

Chúng ta có thể chuyển chuỗi [] thành chuỗi không?

Vậy làm sao để chuyển mảng String thành String trong java. Chúng ta có thể sử dụng Mảng. toString gọi phương thức toString() trên các phần tử riêng lẻ và sử dụng StringBuilder để tạo Chuỗi . Chúng tôi cũng có thể tạo phương thức của riêng mình để chuyển đổi mảng Chuỗi thành Chuỗi nếu chúng tôi có một số yêu cầu định dạng cụ thể.

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

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