2010-11-17 8 views
4

Je sais comment supprimer des documents dans une collection. c'est-à-dire User.last.deleteComment supprimer les champs clés

Dans le document User. J'ai les clés suivantes: first_name, last_name, gender. Par exemple, je décide de retirer la clé last_name. Donc, je n'aurais que first_name et gender seulement. Comment pourrais-je m'y prendre? Est-ce seulement possible? Je n'ai pas essayé User.last.last_name.delete en vain.

+0

La question est marqué roby sur raild, mais le titre et le corps doit refléter le fait que la question est basée sur des rails. –

Répondre

1

Si vous tentez en fait de supprimer la colonne de la base de données, vous devez effectuer une migration pour supprimer la colonne.

Si vous essayez de modifier un enregistrement pour ne pas avoir de nom, vous pouvez faire quelque chose comme User.last.last_name = false, puis enregistrez-le.

+0

Ne serait-ce pas 'User.last.last_name = nil'? – jrdioko

+1

Im en utilisant mongodb/mongoid. Je ne pense pas que mongodb est livré avec des migrations –

+0

peut-être vérifier: https://github.com/adacosta/mongoid_rails_migrations – re5et

31

L'utilisation de mongoid: User.last.unset ('last_name') devrait faire l'affaire.

+0

Avez-vous d'appeler enregistrer après cela parce que ça ne semble pas marcher – Donato

5

Si vous voulez supprimer le champ last_name de la collection (de tous les documents de la collection), vous feriez User.all.unset('last_name')

Questions connexes