2012-11-29 27 views
6

Tôi cố gắng thực hiện một số phép toán số nguyên trong mongodb và có một số vấn đề. Có cách nào để tăng gấp đôi lên hoặc xuống trong khuôn khổ tập hợp db mongo?Có chức năng sàn trong khung tập hợp Mongodb không?

+0

Có vẻ như cách tốt nhất tôi có thể làm là sử dụng mô-đun và trừ như sau: (num-mod (num, 1)). Nó vẫn phun ra một đôi, nhưng ít nhất nó là một số nguyên có giá trị gấp đôi. (và tôi có thể đúc phía khách hàng). – CasualT

+2

[Chức năng số học của khung tổng hợp] (http://docs.mongodb.org/manual/reference/aggregation/#arithmetic-operators) cho MongoDB 2.2 không bao gồm '$ floor' hoặc' $ ceiling'. Nếu có các hàm hoặc toán tử mà bạn muốn thấy được thêm vào, vui lòng đề xuất chúng trong [MongoDB SERVER project] (https://jira.mongodb.org/browse/SERVER), với thành phần "Aggregation Framework". – Stennie

+0

Tự tìm hiểu tài liệu, đó là những gì tôi đã tìm, nhưng muốn đảm bảo rằng tôi không bỏ sót bất cứ điều gì rõ ràng. May mắn là tôi có một công việc xung quanh. :) (Ngoài ra: Tôi sẽ điền vào một yêu cầu tính năng tại một số điểm trong tương lai). – CasualT

Trả lời

9

Theo nhận xét của Stennie, phương pháp sàn và trần không được hỗ trợ.

Và theo nhận xét của tôi ở trên, giải pháp tốt nhất mà tôi có thể tìm thấy là thực hiện một thao tác như sau: (num-mod (num, 1)) sẽ mang lại kết quả tương tự như chức năng sàn.

+0

Điều này sẽ sớm có sẵn: https://docs.mongodb.org/manual/release-notes/3.2-reference/#exp._S_floor – CasualT

1

Bắt đầu từ MongoDB 3.2, bạn có thể sử dụng các toán tử tập hợp số học sau đây có sẵn:

cho phép chuyển đổi sang số nguyên từ bất kỳ bên bạn muốn. Cú pháp thẳng về phía trước: { $function: <number> }

+0

Tôi đã nhận xét rằng vào ngày 4 tháng 11, về câu trả lời ban đầu của tôi;) – CasualT

+1

@CasualT and I chỉ cần viết rằng với một chút chi tiết hơn, một khi tôi đọc tài liệu mới :-) –

+0

Nhiều đánh giá cao. :) – CasualT

Các vấn đề liên quan