sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan gemmer man sorteret array tilbage til MongoDB?

2.4-udgivelsen af ​​MongoDB giver en anden mulighed her, som er at holde array-feltet i sorteret rækkefølge, mens du opdaterer det ved at bruge $sort modifikator.

db.collection.update({_id: document_id}, {
    $push: {
        myarray: {
            $each: [{timestamp: 456, x: 1}, {timestamp: 123, x: 2}, ...],
            $sort: {timestamp: 1}
        }
    }
});

Dette vil resultere i elementerne i myarray felt i det opdaterede dokument, der skal gemmes, sorteret efter stigende timestamp .

Hvis du bare vil sortere de eksisterende elementer på plads uden at tilføje nogen nye, skal du bruge $each: [] :

db.collection.update({_id: document_id}, {
    $push: {
        myarray: {
            $each: [],
            $sort: {timestamp: 1}
        }
    }
});


  1. java - MongoDB + Solr forestillinger

  2. Mongo unikke indeks ufølsomme

  3. Konverter en streng til et tal i MongoDB-projektion

  4. Hvordan samler man json-streng til bson-dokument for at skrive til MongoDB?