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

mongo $ Slice truy vấn đảo ngược chỉ mục ngoài phạm vi

Đúng. Đó là cách javascript Array.prototype.slice() phương thức hoạt động, được sử dụng nội bộ bởi mongodb.

Theo Đặc tả ngôn ngữ ECMAScript® ,

Trong trường hợp của bạn relativeStart is -10 , k = max((-10+5),0), k = 0; (trong đó, 5 là độ dài của mảng của bạn).

Do đó k hoặc skip sẽ luôn là 0 , trong những trường hợp này.

Có, toán tử chiếu hoạt động theo cách đó. Trừ khi inclusion hoặc exclusion được chỉ định rõ ràng trong tham số chiếu, toàn bộ tài liệu được truy xuất bằng các toán tử chiếu như $slice , $elemmatch đang được áp dụng.

db.items.findOne({},{"_id":1,"List": { "$slice": [-10, 3 ] }})

sẽ trở lại:

{ "_id" : ObjectId("542babf265f5de9a0d5c2928"), "List" : [ 1, 2, 3 ] }

Tham số thứ hai cho findOne() phương thức not only for simple projection mục đích, các trường không được chiếu, chỉ khi bất kỳ một trong các trường field tên có giá trị 0 hoặc 1 chống lại họ. Nếu không, toàn bộ tài liệu được trả lại. Nếu bất kỳ trường nào có projection operator được áp dụng, nó sẽ được appliedprojected .

Cơ chế chiếu dường như xảy ra theo cách dưới đây, bất cứ khi nào $slice nhà điều hành có liên quan.

  • Theo mặc định, tất cả các trường sẽ được đưa vào để chiếu.
  • Theo Mặc định, tất cả các trường có giá trị được lấy dựa trên toán tử phép chiếu, $slice , nếu sự thật , luôn được hiển thị, không phân biệt bên dưới.

Các bước diễn ra để loại trừ hoặc đưa vào.

  • Danh sách các trường được chỉ định trong tham số chiếu được tích lũy theo thứ tự đã chỉ định của chúng.
  • Chỉ dành cho trường đầu tiên gặp phải giá trị '0' hoặc '1' :Nếu trường có giá trị '0' - thì nó bị loại trừ và tất cả các trường còn lại được đánh dấu là được đưa vào. Nếu trường có '1' - thì nó được bao gồm và tất cả các trường còn lại được đánh dấu là bị loại trừ.
  • Đối với tất cả các trường tiếp theo, chúng bị loại trừ hoặc bao gồm các giá trị thừa kế.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cập nhật tài liệu nhúng trong MongoDB với trình điều khiển C # chính thức

  2. Cách sử dụng URL mới từ mongodb 3.6 để kết nối từ golang

  3. Cách trả về dữ liệu JSON từ php MongoCursor

  4. NodeJS và MongoDB FindAndModify () cần gỡ bỏ hoặc cập nhật

  5. bộ điều hợp sails-mongo, chuẩn hóa thông báo lỗi