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

Mongoose JS-Abfragen kommen alle als null oder leer zurück

mongoose normalisiert den Namen der Sammlung in Kleinbuchstaben und Plural. Daher sollten Sie in db.samplecollections einfügen anstelle von db.sampleCollection . (Beachten Sie den Unterschied des Buchstabens c und s hier).

um es zu testen:

s = new sampleCollection({sampleField: 'hello'}); // creates a new record
s.save(function(err) { 
  sampleCollection.find({ } , function (err, items) {
      console.log(items); 
      console.log(err); 
      items.forEach( function(item) {
          console.log(item); 
      });
  });
});

und es wird richtig gedruckt:

[ { sampleField: 'hello', _id: 4f28ab4cc9e58f710a000001 } ]
null
{ sampleField: 'hello', _id: 4f28ab4cc9e58f710a000001 }

dann in der Mongo-Shell:

> show collections
samplecollections          //<<<<<<<<<<<<<< It's all lowercase and pluralized
system.indexes

> db.samplecollections.find()
{ "sampleField" : "hello", "_id" : ObjectId("4f28ab4cc9e58f710a000001") }