MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Sàn MongoDB $

Trong MongoDB, $floor toán tử đường ống tổng hợp trả về số nguyên lớn nhất nhỏ hơn hoặc bằng số được chỉ định.

$floor 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" : 8.99 }
{ "_id" : 2, "data" : 8.01 }
{ "_id" : 3, "data" : -8.99 }
{ "_id" : 4, "data" : -8.01 }
{ "_id" : 5, "data" : 8 }

Chúng ta có thể sử dụng $floor toán tử để trả về số nguyên lớn nhất nhỏ hơn hoặc bằng data lĩnh vực:

db.test.aggregate(
  [
    { $project: { 
        data: 1,
        floor: { $floor: "$data" }
      }
    }
  ]
)

Kết quả:

{ "_id" : 1, "data" : 8.99, "floor" : 8 }
{ "_id" : 2, "data" : 8.01, "floor" : 8 }
{ "_id" : 3, "data" : -8.99, "floor" : -9 }
{ "_id" : 4, "data" : -8.01, "floor" : -9 }
{ "_id" : 5, "data" : 8, "floor" : 8 }

Trong ví dụ này, data trường là giá trị ban đầu và floor trường là giá trị sàn của giá trị đó.

Giá trị rỗng

Giá trị rỗng trả về null khi sử dụng $floor 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 $floor toán tử đối với tài liệu đó:

db.test.aggregate(
  [
    { $match: { _id: 6 } },
    { $project: { 
        floor: { $floor: "$data" }
      }
    }
  ]
)

Kết quả:

{ "_id" : 6, "floor" : 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 , $floor trả về NaN .

Ví dụ:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        floor: { $floor: "$data" * 1 }
      }
    }
  ]
)

Kết quả:

{ "_id" : 1, "floor" : NaN }

Các trường không tồn tại

Nếu $floor 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: { 
        floor: { $floor: "$name" }
      }
    }
  ]
)

Kết quả:

{ "_id" : 1, "floor" : null }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 'Giao dịch' nhiều bộ sưu tập, nhiều tài liệu trong MongoDB

  2. MongoDB $ nhân

  3. Hiểu về độ bền &độ an toàn khi viết trong MongoDB

  4. Trình tự tăng tự động trong mongodb sử dụng java

  5. Mongo có thể nâng cấp dữ liệu mảng không?