Trong MongoDB, $ceil toán tử đường ống tổng hợp trả về số nguyên nhỏ nhất lớn hơn hoặc bằng số được chỉ định.
$ceil chấp nhận bất kỳ biểu thức hợp lệ nào phân giải thành một số.
Ví dụ
Giả sử chúng ta có một bộ sưu tập được gọi là test với các tài liệu sau:
{ "_id" : 1, "data" : 1.5 }
{ "_id" : 2, "data" : 1.01 }
{ "_id" : 3, "data" : -1.5 }
{ "_id" : 4, "data" : -1.01 }
{ "_id" : 5, "data" : 1 }
Chúng ta có thể sử dụng $ceil toán tử để trả về giá trị trần của data lĩnh vực:
db.test.aggregate(
[
{ $project: {
ceiling: { $ceil: "$data" }
}
}
]
) Kết quả:
{ "_id" : 1, "ceiling" : 2 }
{ "_id" : 2, "ceiling" : 2 }
{ "_id" : 3, "ceiling" : -1 }
{ "_id" : 4, "ceiling" : -1 }
{ "_id" : 5, "ceiling" : 1 } Giá trị rỗng
Giá trị rỗng trả về null khi sử dụng $ceil nhà điều hành.
Giả sử chúng ta thêm tài liệu sau vào bộ sưu tập của mình:
{ "_id" : 6, "data" : null }
Hãy áp dụng $ceil toán tử đối với tài liệu đó:
db.test.aggregate(
[
{ $match: { _id: { $in: [ 6 ] } } },
{ $project: {
ceiling: { $ceil: "$data" }
}
}
]
) Kết quả:
{ "_id" : 6, "ceiling" : null }
Chúng ta có thể thấy rằng kết quả là null .
Giá trị NaN
Nếu đối số phân giải thành NaN , $ceil trả về NaN .
Ví dụ:
db.test.aggregate(
[
{ $match: { _id: 1 } },
{ $project: {
ceiling: { $ceil: "$data" * 1 }
}
}
]
) Kết quả:
{ "_id" : 1, "ceiling" : NaN } Các trường không tồn tại
Nếu $ceil toán tử được áp dụng cho một trường không tồn tại, null được trả lại.
Ví dụ:
db.test.aggregate(
[
{ $match: { _id: 1 } },
{ $project: {
ceiling: { $ceil: "$age" }
}
}
]
) Kết quả:
{ "_id" : 1, "ceiling" : null }