MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak przenieść element w tablicy MongoDB?

Oto inny sposób przeniesienia elementu na nową pozycję, który zamieni pozycje it2 i it3...

  1. Usuń element z tablicy za pomocą $pull [Dokumenty tutaj] .

    update({"name": "myDoc"}, {$pull: {"items" : "it3"}});
    
  2. Wstaw element w nowej pozycji za pomocą $push. [Dokumenty tutaj] .

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

Kiedy używać

Odpowiedź Pouzora na użycie $set może być prostsza i działać lepiej w wielu przypadkach użycia.

Jeśli jednak wielu użytkowników jednocześnie dodaje, usuwa i zmienia kolejność elementów tablicy, ta metoda oznacza, że ​​nie zastąpisz nawzajem swoich zmian.

Może być również bardziej wydajny w niektórych przypadkach (np. duże elementy tablicy), ponieważ zapisywanych jest mniej danych.

GOTCHA:Lista list

Jeśli lista, którą zmieniasz, jest tablicą tablic, musisz użyć operatora $all z $pull [ Dokumenty tutaj ]

Weźmy ten przykład:

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

Oto kod do usunięcia pierwszej listy z listy list:

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

Lista obiektów

To jest łatwe. Załóżmy, że masz następującą listę obiektów:

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

Możesz $ciągnąć w ten sposób:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak korzystać z mangusty findOne

  2. Zaktualizuj/usuń dokument podrzędny w mongodb za pomocą sterownika C#

  3. mongodb aktualizuje ostatni element tablicy

  4. MongoDB odrębne polecenie

  5. znajdź i policz w pojedynczym zapytaniu mongodb