2016-09-10 2 views
0

Was ist der richtige Weg, um eine Sammlung in MongoDB zu filtern? Ich muss das Array nach der ID-Nummer filtern. MongoDB-Sammlung kann nicht gefiltert werden

var collection = db.collection('blog'); 
 

 
try { 
 

 
    collection.find().toArray(function(err, result) { 
 

 
    if (err) { 
 
     console.log('Error:', err); 
 
    } else { 
 

 
     res.render('blogEntry', { 
 
     title: 'Blog Entry', 
 
     session: req.session, 
 
     blog: result 
 
     }); 
 

 
     db.close(); 
 
    } 
 

 
    }); 
 

 
} catch (Exception) { 
 
    console.log('there was a problem when accessing collection'); 
 
}

Antwort

1
collection.find({ _id: "apple" }).toArray... 

Die Methode hat zwei Parameter:

collection.find(query, projection) 

Wenn Sie sie leer lassen, Sie alles holen.

Hier ist die documentation

+0

, die nicht für mich arbeiten. Nichts kommt zurück. – user3183411

+0

müssen Sie Apple mit Ihrer ID ersetzen? – lustoykov

+0

Nun ja, aber es filterte immer noch nichts zurück. Ich habe deine Methode bei einigen anderen Posts gesehen. Aus irgendeinem Grund muss diese Objekt-ID dort sein, sonst kam sie als undefiniert zurück. – user3183411

0

Dies ist, was ich tun musste.

var ObjectID = require('mongodb').ObjectID; 
 

 
collection.find({ 
 
    _id: ObjectID(blogId) 
 
}).toArray(function(err, result) { 
 
    callback(result); 
 
    db.close(); 
 
});

+0

Die Sache ist, es ist ein erforderlicher Wert. – user3183411

Verwandte Themen