MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Element aus dem Array in Mongodb entfernen

Wenn ich Sie richtig verstehe, möchten Sie das erste und letzte Element des Arrays entfernen, wenn die Größe des Arrays größer als 3 ist. Sie können dies tun, indem Sie die Abfrage findAndModify verwenden. In der Mongo-Shell würden Sie diesen Befehl verwenden:

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

Dies würde das Dokument in Ihrer Sammlung finden, das mit der $where-Klausel übereinstimmt. Das $where-Feld ermöglicht es Ihnen, eine beliebige gültige Javascript-Methode anzugeben. Bitte beachten Sie, dass die Aktualisierung nur auf das erste übereinstimmende Dokument angewendet wird.

Vielleicht möchten Sie sich auch die folgenden Dokumente ansehen:

  1. http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D für mehr über die $where-Klausel.
  2. http://www.mongodb.org/display/DOCS /Aktualisierung#Aktualisierung-%24pop früher auf $pop.
  3. http://www.mongodb.org/display/DOCS/findAndModify+ Befehl für mehr auf findAndModify.