MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Премахване на елемента на масива в mongoDB въз основа на позицията на елемента

От документацията:

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

Така че предполагам, че можете да направите нещо подобно засега:

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

Или опитайте да актуализирате чрез оператор за позиция , предполагам, че трябва да е нещо подобно:

  { $pull : "field.4" } 

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

Това е само предложение, защото не мога да го тествам в момента.

Актуализация:

Изглежда не можете да го направите правилно в една стъпка (има такъв бъг в jira )

Но можете да премахнете, като използвате ненастроен елемент в позиция и който изтегля елементи с нулева стойност:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Angular Google Maps/NodeJS:Показване на маркери от база данни

  2. Сравнителен анализ на MongoDB – повишаване на производителността на NoSQL

  3. Mongo DB 4.0 Транзакции с Mongoose &NodeJs, Express

  4. MongoDB вмъкване()

  5. NodeJS - MongoClient.Connect с URL към DB, различен от по подразбиране