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.
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
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
4{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
Không bắt buộc. Giá trị trả về nếu
1 là null hoặc bị thiếu. Các đối số có thể là bất kỳ hợp lệ{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
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ếuNgoà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
0{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
thật
1{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
thật
0{ input: true, to: "bool" }
thật
1{ input: true, to: "bool" }
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ề
08 cho { input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
09{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
Trả về
{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
10 cho { input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
11Gấ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.
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{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
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ênBảng sau đây liệt kê một số ví dụ chuyển đổi sang số nguyên
Ví dụ
Kết quả
2{ input: true, to: "bool" }
1
3{ input: true, to: "bool" }
0
4{ input: true, to: "bool" }
1
5{ input: true, to: "bool" }
5
6{ input: true, to: "bool" }
Lỗi
7{ input: true, to: "bool" }
5000
8{ input: true, to: "bool" }
Lỗi
9{ input: true, to: "bool" }
-2
0{ input: false, to: "bool" }
Lỗi
1{ input: false, to: "bool" }
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ề
17 cho { input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
09{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
Trả về
{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
19 cho { input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
11Gấ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.
01, { input: true, to: "bool" }
13]{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
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ả
2{ input: false, to: "bool" }
Thập phân128["1"]
3{ input: false, to: "bool" }
Thập phân128["0"]
4{ input: false, to: "bool" }
Thập phân128["2. 50000000000000"]
5{ input: false, to: "bool" }
Thập phân128["5"]
6{ input: false, to: "bool" }
Thập phân128["10000"]
7{ input: false, to: "bool" }
Thập phân128["-5. 5"]
8{ input: false, to: "bool" }
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
09{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
Trả về NumberDouble[1] cho
{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
11Gấ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.
01, { input: true, to: "bool" }
13] và nằm trong giá trị tối thiểu và tối đa cho giá trị gấp đôi{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
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 đôiNgà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ả
9{ input: false, to: "bool" }
1
0{ input: 1.99999, to: "bool" }
0
1{ input: 1.99999, to: "bool" }
2. 5
2{ input: 1.99999, to: "bool" }
5
3{ input: 1.99999, to: "bool" }
10000
4{ input: 1.99999, to: "bool" }
-5. 5
5{ input: 1.99999, to: "bool" }
50000000000
6{ input: 1.99999, to: "bool" }
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ề
08 cho { input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
09{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
Trả về
{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
10 cho { input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
11Gấ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.
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{ input: ISODate[ "2018-03-26T04:38:28.044Z" ], to: "bool"}
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àiNgà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ả
7{ input: 1.99999, to: "bool" }
Dài["1"]
8{ input: 1.99999, to: "bool" }
Dài["0"]
9{ input: 1.99999, to: "bool" }
Dài["2"]
0{ input: Decimal128[ "5" ], to: "bool" }
Dài["5"]
1{ input: Decimal128[ "5" ], to: "bool" }
Lỗi
2{ input: Decimal128[ "5" ], to: "bool" }
Dài["8"]
3{ input: Decimal128[ "5" ], to: "bool" }
Dài["1522039108044"]
4{ input: Decimal128[ "5" ], to: "bool" }
Dài["-2"]
5{ input: Decimal128[ "5" ], to: "bool" }
Lỗi
6{ input: Decimal128[ "5" ], to: "bool" }
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ả
7{ input: Decimal128[ "5" ], to: "bool" }
ISODate["1973-10-20T21. 20. 00. 000Z"]
8{ input: Decimal128[ "5" ], to: "bool" }
ISODate["2009-09-19T14. 53. 56. 000Z"]
9{ input: Decimal128[ "5" ], to: "bool" }
ISODate["2004-11-09T11. 33. 20. 000Z"]
0{ input: Decimal128[ "0" ], to: "bool" }
ISODate["1935-02-22T12. 26. 40. 000Z"]
1{ input: Decimal128[ "0" ], to: "bool" }
ISODate["2018-03-27T04. 08. 58. 000Z"]
2{ input: Decimal128[ "0" ], to: "bool" }
ISODate["2018-03-03T00. 00. 00. 000Z"]
3{ input: Decimal128[ "0" ], to: "bool" }
ISODate["2018-03-20T06. 00. 06. 000Z"]
4{ input: Decimal128[ "0" ], to: "bool" }
Lỗi
5{ input: Decimal128[ "0" ], to: "bool" }
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ả
6{ input: Decimal128[ "0" ], to: "bool" }
ObjectId["5ab9cbfa31c2ab715d42129e"]
7{ input: Decimal128[ "0" ], to: "bool" }
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ả
8{ input: Decimal128[ "0" ], to: "bool" }
"thật"
9{ input: Decimal128[ "0" ], to: "bool" }
"sai"
0{ input: 100, to: "bool" }
"2. 5"
1{ input: 100, to: "bool" }
"2"
2{ input: 100, to: "bool" }
"1000"
3{ input: 100, to: "bool" }
"5ab9c3da31c2ab715d421285"
4{ input: 100, to: "bool" }
"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" }
5Hoạ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