sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik gesorteerde array terug opslaan naar MongoDB?

De 2.4-release van MongoDB biedt hier een andere optie, namelijk om het arrayveld in gesorteerde volgorde te houden terwijl u het bijwerkt met behulp van de $sort modificatie.

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

Dit resulteert in de elementen van de myarray veld van het bijgewerkte document dat moet worden opgeslagen, gesorteerd op oplopend timestamp .

Als u alleen de bestaande elementen op hun plaats wilt sorteren zonder nieuwe toe te voegen, gebruikt u $each: [] :

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


  1. Kan redis mysql volledig vervangen?

  2. Hoe print je meer dan 20 items (documenten) in MongoDB's shell?

  3. Kan robomongo.sh niet uitvoeren met sh robomongo.sh in Ubuntu 14.04

  4. hoe een mongo-cursor in een lus in python te herhalen?