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

MongoDB $ log10

Trong MongoDB, $log10 toán tử đường ống tổng hợp tính toán cơ sở nhật ký 10 của một số và trả về kết quả dưới dạng kép.

$log10 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ố không âm.

$log10 toán tử đã được giới thiệu trong MongoDB 3.2.

Ví dụ

Giả sử chúng ta có một bộ sưu tập được gọi là test với tài liệu sau:

{ "_id" : 1, "data" : 0.5 }

Chúng ta có thể sử dụng $log10 toán tử để trả về cơ sở nhật ký 10 của data lĩnh vực:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        result: { $log10: "$data" }
      }
    }
  ]
)

Kết quả:

{ "result" : -0.3010299956639812 }

Giá trị ngoài phạm vi

Như đã đề cập, $log10 toán tử 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ố không âm. Các giá trị nằm ngoài phạm vi đó sẽ gây ra lỗi.

Giả sử chúng ta thêm tài liệu sau vào bộ sưu tập của mình:

{ "_id" : 2, "data" : -3 }

Hãy chạy $log10 toán tử đối với tài liệu đó:

db.test.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        result: { $log10: "$data" }
      }
    }
  ]
)

Kết quả:

uncaught exception: Error: command failed: {
	"ok" : 0,
	"errmsg" : "$log10's argument must be a positive number, but is -3",
	"code" : 28761,
	"codeName" : "Location28761"
} : aggregate failed :
[email protected]/mongo/shell/utils.js:25:13
[email protected]/mongo/shell/assert.js:18:14
[email protected]/mongo/shell/assert.js:618:17
[email protected]/mongo/shell/assert.js:708:16
[email protected]/mongo/shell/db.js:266:5
[email protected]/mongo/shell/collection.js:1046:12
@(shell):1:1

Giá trị rỗng

Giá trị rỗng trả về null khi sử dụng $log10 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" : 3, "data" : null }

Hãy chạy $log10 toán tử đối với tài liệu đó:

db.test.aggregate(
  [
    { $match: { _id: 3 } },
    { $project: { 
        _id: 0,
        result: { $log10: "$data" }
      }
    }
  ]
)

Kết quả:

{ "result" : 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 , $log10 trả về NaN .

Ví dụ:

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

Kết quả:

{ "result" : NaN }

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

Nếu $log10 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: { 
        _id: 0,
        result: { $log10: "$name" }
      }
    }
  ]
)

Kết quả:

{ "result" : null }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hồ bơi máy &hồ sơ đám mây cho MongoDB

  2. Tạo đối tượng BSON từ chuỗi JSON

  3. MongoDB hoặc CouchDB - phù hợp để sản xuất?

  4. MongoDB:tìm giá trị trong Mảng với nhiều tiêu chí

  5. Làm cách nào để tạo ngày truy vấn trong mongodb bằng pymongo?