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

Как да преместите елемент в MongoDB масив?

Ето друг начин да преместите елемент на нова позиция, която ще размени позициите на it2 и it3...

  1. Премахнете елемента от масива с помощта на $pull [ Документи тук ] .

    update({"name": "myDoc"}, {$pull: {"items" : "it3"}});
    
  2. Вмъкнете елемента в новата позиция с помощта на $push. [ Документи тук ] .

    update({"name": "myDoc"}, { 
        $push: { 
            "items" : { $each : [ "it3" ], $position : 1 }
        }
    });
    

Кога да се използва

Отговорът на Pouzor за използване на $set може да е по-прост и да работи по-добре за много случаи на употреба.

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

Може също да е по-ефективен в някои случаи (напр. големи елементи на масив), тъй като се записват по-малко данни.

ГОЧА:Списък със списъци

Ако списъкът, който пренареждате, е масив от масиви, трябва да използвате оператора $all с $pull [ Документи тук ]

Вземете този пример:

{
    name: "myDoc",
    items: [  
        [ "User", "dofij20r91dj93" ],   
        [ "User", "239vjvidjfsldf" ], 
        [ "User", "2309jvdsjdkk23" ]
    ]
}

Ето кода за премахване на първия списък от списъка със списъци:

update({"name": "myDoc"}, {
    $pull: {
        "items" : {
            $all : [ "User", "dofij20r91dj93" ]  // the sub-list to $pull
        }
    }
});

Списък с обекти

Това е лесно. Да кажем, че имате следния списък с обекти:

{
    name: "myDoc",
    items: [  
        { type: "User",  id: "dofij20r91dj93", name: "Dave" },   
        { type: "Group", id: "239vjvidjfsldf", name: "Accountants" }, 
        { type: "User",  id: "2309jvdsjdkk23", name: "Toni" }
    ]
}

Можете да $дърпате така:

update({"name": "myDoc"}, {
    $pull: { 
        "items" : { type: "User", id: "dofij20r91dj93" } 
    }
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $radiansToDegrees

  2. MongoDB изтрива много бавно

  3. Има ли начин да отпечатате "красиво" изхода на обвивката на MongoDB във файл?

  4. MongoDB и C# Find()

  5. mongodb получава отделни записи