J'ai 1000 utilisateurs que je vais récupérer de Twitter et je voudrais les sauvegarder à un coup, par opposition à faire 1000 insertions individuellement.
Comment puis-je faire cela sur Mongoïde? Quelque chose comme ça va basculer: p>
3 Réponses :
Vous devez utiliser le pilote Mongo Ruby pour le faire. Vous pouvez transmettre un tableau de hachage à la Insérer Code> Méthode
pour créer plusieurs documents à la fois (plus d'informations sur ce Discussion de groupes Google ). Mongoïde facilite l'accès au pilote Ruby.
Le code ressemblerait à ceci comme suit: P>
user_list = twitter_accounts.map do |account| # create a hash of all the fields to be stored in each document { 'name' => account.name, 'username' => account.username # some other fields... } end Mongoid.master['twitter_users'].insert(user_list)
Cela répond bien. Merci!
Cool. Le pilote Mongo Ruby est très cool et que Mongoïde facilite l'accès. N'ayez pas peur d'utiliser le pilote Ruby et les requêtes brutes de MongoDB.
Oui, essayant d'arriver à ce niveau de compétence. Comme avec n'importe quelle nouvelle technologie, a besoin d'un peu de mains à la main au début
Il suffit d'utiliser mongoidmodel.create directement. P>
Vous avez presque compris cela, c'est aussi, comme @Bowsersenior pointe, C'est une bonne idée de l'utiliser avec de la Insérer un document ou plusieurs documents dans la base de données P>
modèle.create! em> < / strong> p>
Insérez un document ou plusieurs documents dans la base de données, soulevant une erreur si une erreur de validation se produit. p>
blockQuote> p> créer code>, pas
créemanan code>. Vous pouvez l'utiliser comme ceci:
Array # Carte CODE> A >: p>
mongoïde # persistance code>
docs: p>
Il suffit de vous demander, pourquoi devez-vous faire cela "en un coup"?
C'est une fonctionnalité d'utilisateur confrontée. L'utilisateur attendrait pendant que je fais cela;) je bricolage je peux mettre en cache suffisamment de données pour que la partie Twitter fonctionne assez vite