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

Може ли mongo да повиши данни от масива?

Самият аз просто се сблъсках с този проблем. Не успях да намеря решение с едно обаждане, но намерих решение с две обаждания, което работи, когато имате уникална стойност в елементите на масива . Използвайте $pull команда първо, която премахва елементи от масив, а след това $push .

db.soup.update({
    "tester":"tom"
}, {
    $pull: {
        'array': {
            "id": "3"
        }
    }
})
db.soup.update({
    "tester":"tom"
}, {
    $push: {
        'array': {
            "id": "3",
            "letter": "d"
        }
    }
})

Това трябва да работи, когато документът не съществува, когато документът съществува, но записът в масива не съществува, и когато записът съществува.

Отново, това работи само ако имате нещо, като id поле в този пример, което трябва да е уникално за елементите на масива.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Изображението, върнато от REST API, винаги се показва неработещо

  2. Правене на spring-data-mongodb като мулти-наемател

  3. mongodb заявки както с И, така и с ИЛИ

  4. Съвпадение на ObjectId към String за $graphLookup

  5. Свържете се с конкретна база данни по подразбиране в mongodb