MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Remover elemento da matriz no mongodb


Se estou entendendo corretamente, você deseja remover o primeiro e o último elemento da matriz se o tamanho da matriz for maior que 3. Você pode fazer isso usando a consulta findAndModify. No shell do mongo, você usaria este comando:
db.collection.findAndModify({
    query: { $where: "this.time.length > 3" },
    update: { $pop: {time: 1}, $pop: {time: -1} },
    new: true
});

Isso localizaria o documento em sua coleção que corresponda à cláusula $where. O campo $where permite que você especifique qualquer método javascript válido. Observe que ele aplica a atualização apenas ao primeiro documento correspondente.

Você pode querer olhar para os seguintes documentos também:
  1. http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D para saber mais sobre a cláusula $where.
  2. http://www.mongodb.org/display/DOCS /Updating#Updating-%24pop para mais informações sobre $pop.
  3. http://www.mongodb.org/display/DOCS/findAndModify+ Comando para mais informações findAndModify.