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

Xóa phần tử mảng trong mongoDB dựa trên vị trí của phần tử

Từ tài liệu:

{ $pull : { field : {$gt: 3} } } removes array elements greater than 3

Vì vậy, tôi cho rằng bạn có thể làm điều gì đó như thế này ngay bây giờ:

{ $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position 

Hoặc thử cập nhật bằng cách sử dụng toán tử vị trí , tôi cho rằng nên giống như thế này:

  { $pull : "field.4" } 

  { $pull : {"field.$": 4}}

Nó chỉ là một gợi ý, vì tôi không thể kiểm tra nó ngay bây giờ.

Cập nhật:

Có vẻ như bạn không thể làm đúng chỉ trong một bước (có lỗi trong jira )

Nhưng bạn có thể xóa bằng cách sử dụng phần tử chưa được đặt ở vị trí và kéo các đường cao lên có giá trị null:

{$unset : {"array.4" : 1 }}
{$pull : {"array" : null}}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách xử lý dấu gạch nối trong định nghĩa Lược đồ GraphQL

  2. Chèn số lượng lớn Pymongo

  3. Sắp xếp một mảng và thêm một trường xếp hạng trong MongoDB

  4. Truy vấn tiêu chí MongoTemplate

  5. Trong MongoDB, tôi đang sử dụng một truy vấn lớn, cách tôi sẽ tạo chỉ mục kết hợp hoặc chỉ mục đơn, Vì vậy, thời gian phản hồi của tôi tăng lên