sql >> Databáze >  >> NoSQL >> MongoDB

Odeberte prvek z pole v mongodb

Pokud vám rozumím správně, chcete odstranit první a poslední prvek pole, pokud je velikost pole větší než 3. Můžete to provést pomocí dotazu findAndModify. V mongo shell byste použili tento příkaz:

db.collection.findAndModify({
    query: { $where: "this.time.length > 3" },
    update: { $pop: {time: 1}, $pop: {time: -1} },
    new: true
});

To by ve vaší sbírce našlo dokument, který odpovídá klauzuli $where. Pole $where vám umožňuje zadat jakoukoli platnou metodu javascriptu. Upozorňujeme, že aktualizace se vztahuje pouze na první odpovídající dokument.

Můžete se také podívat na následující dokumenty:

  1. http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D další informace o klauzuli $where.
  2. http://www.mongodb.org/display/DOCS /Updating#Updating-%24pop více na $pop.
  3. http://www.mongodb.org/display/DOCS/findAndModify+ Příkaz pro více informací findAndModify.


  1. Mongoose:Odeslání do ObjectId selhalo pro hodnotu

  2. Jak volat uložený JavaScript v MongoDb z C#

  3. Junit/Fongo:Jak využít Fongo v testu jednotek pro kontrolu NotNull

  4. Ukládání DateTime v MongoDB má vliv na výkon