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

So suchen Sie nach einem Datensatz und löschen ihn dann

Sie müssen die MongoDB-Punktnotation für das eingebettete Element verwenden, was bedeutet, dass der „Schlüssel“ eine Zeichenkettennotation sein muss. Wenden Sie auch $exists an übereinstimmen, wo der Schlüssel in has vorhanden ist und der .unset() Methode von mongoid:

User.where('_id'=> userId, 'ttokens.919839398393'=> { '$exists' => true }).unset(
  'ttokens.919839398393'
)

Dies ist praktisch der $unset Operator von MongoDB, der "Schlüssel" aus dem Dokument durch den angegebenen Pfad entfernt.

Aus dem Beispieldokument würde dies übereinstimmen und den ersten Schlüssel entfernen, wobei nur der andere übrig bleibt.