sql >> Databasteknik >  >> NoSQL >> MongoDB

Ta bort ett element från array i mongodb

$pop operatorn tar bort första eller sista elementet i arrayen, vilket inte nödvändigtvis är det rätta.

Om du vill ha ett specifikt element kan du $pull objektet med definierade kriterier:

   model.registerCompany.findOneAndUpdate({companyKey:"a key"},
    {$pull:{onlineEmployees:"John"}},

Du måste se till att värdet i arrayen är unikt för $pull tar bort alla element som matchar namnet 'John'.

Om identiska värden finns i arrayen måste du använda $unset och $ positionsoperator för att ställa in målelementvärdet till null (tyvärr tar $unset inte bort element) och använd sedan $pull för att ta bort elementet med null värde. För att göra det måste du se till att ett giltigt värde inte kan vara null . I så fall kan koden vara så här:

model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } ) 
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } ) 



  1. Kapslad array $pull-fråga med C# MongoDB-drivrutin

  2. Mongoose.js skapar flera anslutningar till MongoDB från ett connect()-anrop

  3. Importera CSV med Mongoose Schema

  4. mongodb:aktivera textSearch