Tôi biết rằng ObjectIDs
là 12 byte trong MongoDB. Và tôi biết rằng numbers
là 64 bit. Nhưng làm cách nào để tìm ra kích thước của một số đã lưu string
Kích thước của một loại chuỗi trong MongoDB
Trả lời
Đặc tả bson tại http://bsonspec.org/spec.html là điểm khởi đầu tốt. Cụ thể, điều quan trọng là nhận ra rằng BSON có có các loại số nguyên, bao gồm cả số nguyên 32 bit, mặc dù JavaScript sử dụng số dấu phẩy động 64 bit - MongoDB sử dụng JavaScript rất nhiều, nhưng không phải là được viết bằng JavaScript và có các loại khác nhau. Sự tồn tại của các số nguyên thực là khá quan trọng, nếu không thì $inc
trên một số lớn sẽ không hoạt động.
Để trả lời câu hỏi của bạn: chuỗi được lưu trữ dưới dạng chuỗi được mã hóa UTF-8 có dấu mũ 0 và chiều dài 32 bit ở trước, cộng với chỉ báo loại 1 byte và tên phần tử. Hãy nhớ rằng các đối tượng có thêm chi phí.
_- "Hãy nhớ rằng các đối tượng có thêm chi phí." _ ... Không chắc tôi hiểu bạn ở đây. Bạn có thể xây dựng điều này =) –
Như bạn có thể thấy trong thông số BSON, bản thân tài liệu bao gồm tổng chiều dài tính theo byte, một 'e_list' và một số không kết thúc. 'E_list' là danh sách các phần tử, mỗi phần tử có một phần tử có chỉ báo kiểu, tên phần tử và dữ liệu thực tế. Một tài liệu nhúng sẽ là một phần tử của riêng nó, vì vậy việc lồng sẽ làm tăng kích thước (một cách tự nhiên). Hơn nữa, các tài liệu sẽ được đệm không chỉ bởi yếu tố đệm, mà còn sao cho kích thước của nó theo byte là bội số của 16 (có thể phụ thuộc vào phiên bản và hệ điều hành). – mnemosyn
- 1. Kích thước của chuỗi
- 2. Nhận kích thước của một chuỗi trong Android
- 3. phân loại vectơ chuỗi dựa trên kích thước chuỗi
- 4. MongoDB tổng kích thước của các lĩnh vực mảng
- 5. MongoDB - Đối số với kích thước $ phải là một mảng, nhưng thuộc loại: EOO
- 6. Tính kích thước theo byte của một Chuỗi Swift
- 7. băm chuỗi kích thước
- 8. Kích thước của một NSArray
- 9. Truy vấn kích thước mảng nội bộ trong MongoDB
- 10. Python: kích thước của chuỗi trong bộ nhớ
- 11. Kích thước và loại thông báo RabbitMQ
- 12. cá mú với một chuỗi kích thước chunk trong python?
- 13. Lấy kích thước của các kích thước trong mảng
- 14. MongoDB: kích thước kết quả truy vấn lớn hơn kích thước bộ sưu tập
- 15. Kích thước lưu trữ chuỗi trong sqlite
- 16. Tính toán kích thước của một email trong .NET
- 17. Kích thước VARCHAR của MySQL?
- 18. Kích thước heap được giữ lại của một chuỗi trong java
- 19. Kích thước của một byte trong bộ nhớ - Java
- 20. Cách xác định kích thước của chuỗi và nén nó
- 21. Có kích thước bình thường cho MongoDB không?
- 22. Trả về loại thực tế của một trường trong MongoDB
- 23. Kích thước của một bản ghi? SQL
- 24. Tính toán kích thước của một mảng
- 25. Tìm kích thước của một mảng javascript
- 26. Cách nhận kích thước byte của chuỗi nhiều byte
- 27. MongoDB Giới hạn kích thước tài liệu đơn là 16MB
- 28. Lấy kích thước của một listview
- 29. C++/Kích thước của một vector 2d
- 30. Lấy kích thước của một mảng 2D
db.test.findOne(). String_fielsd.length; – Disposer
@Disposer: OP yêu cầu kích thước * của chuỗi chứ không phải là * length *. Nhiều triển khai chuỗi cũng lưu trữ độ dài của chuỗi và có thể hoặc không thể thêm một terminator null. Hơn nữa, trong khi chiều dài và kích thước của chuỗi * chính nó * là điều tương tự trong ASCII, chúng chắc chắn không có trong UTF-8, hãy xem http://en.wikipedia.org/wiki/UTF-8. Ví dụ: "ä" có 'length' 1, nhưng yêu cầu hai byte để lưu trữ (' 0xC3A4'). – mnemosyn