2011-07-01 3 views
3

J'utilise MongoDB dans notre projet et je suis en train d'apprendre comment les choses fonctionnentDB Mongo - plus rapide pour récupérer 5 millions de disques provenant d'une collection

J'ai créé une collection de 5 millions de disques. Lorsque je tire la requête db.ProductDetails.find() sur la console, il faut trop de temps pour afficher toutes les données.

Aussi quand j'utilise le code suivant dans C#

var Products = db.GetCollection("ProductDetails").FindAll().Documents.ToList(); 

le système jette OutOfMemoryException après un certain temps ..

est-il un autre moyen d'atteindre plus rapidement ou plus optimisé cela?

+1

Pourquoi voulez-vous chercher 5 millions d'enregistrements à la fois ??? –

Répondre

2

N'essayez jamais d'aller chercher toutes les entrées en même temps. Utilisez des filtres ou obtenez quelques lignes à la fois.

Lire cette question: MongoDB - paging

+0

En fait, j'ai besoin de toute la collection au début –

+0

quel fournisseur utilisez-vous pour aller chercher tous les objets? et quelle est la taille de chaque objet? – jgauffin

+0

J'utilise le code suivant Mongo firsttest = new Mongo(); firsttest.Connect(); var db = firsttest.GetDatabase ("myDB"); var Produits = db.GetCollection ("ProductDetails"). FindAll(). Documents.ToList(); –

0

Essayez d'obtenir le sous-ensemble qui est nécessaire. Si vous essayez d'aller chercher tous les objets, alors il est certain que vous aurez besoin de suffisamment de RAM pour la taille de votre collection de base de données !! Essayez d'aller chercher les objets qui seront utilisés dans l'application.

+2

Bienvenue sur Stackoverflow. N'oubliez pas de visiter [this] (http://stackoverflow.com/questions/how-to-answer). – menjaraz

Questions connexes