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

Премахване на поддокумент от масив в MongodDB

Вашият пример работи добре:

db.so.drop();
db.so.insert(
{
    "_id" : ObjectId("51ee899ec15d5aaff39d3353"),
    "first" : "first",
    "last" : "last",
    "email" : "email",
    "phone" : "555 555 5555",
    "userRole" : "su",
    "cards" : [
            {
                    "rfid_id" : ObjectId("51ee899ec15d5aaff39d3359")
            }
    ],
    "zones" : [
            {
                    "zone_id" : ObjectId("51ee899ec15d5aaff39d3357")
            }
    ]
});

db.so.update({}, {$pull:{ "cards": {"rfid_id": ObjectId("51ee899ec15d5aaff39d3359")}}}, false, false)
db.so.find().pretty();

Изходи:

{
    "_id" : ObjectId("51ee899ec15d5aaff39d3353"),
    "cards" : [ ],
    "email" : "email",
    "first" : "first",
    "last" : "last",
    "phone" : "555 555 5555",
    "userRole" : "su",
    "zones" : [
        {
            "zone_id" : ObjectId("51ee899ec15d5aaff39d3357")
        }
    ]
}

Въпреки че трябваше леко да променя ObjectID за изтегляне, тъй като първоначално използваше различен низ между вашата проста и пълна версия на документа.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Метеор без монго

  2. как правилно да хвърляте ObjectId в mongoose

  3. Времева сложност на $addToset срещу $push, когато елементът не съществува в масива

  4. Импортирайте CSV данни като масив в MongoDB с помощта на mongoimport

  5. Query MongoDb агрегат обединява две колекции