MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Model.find().toArray() твърди, че няма метод .toArray().

toArray функцията съществува в Cursor клас от Native MongoDB NodeJS драйвер (справка). find метод в MongooseJS връща Query обект (референтен). Има няколко начина, по които можете да търсите и да връщате резултати.

Тъй като в драйвера на NodeJS за MongoDB няма синхронни извиквания, ще трябва да използвате асинхронен модел във всички случаи. Примерите за MongoDB, които често са в JavaScript, използвайки MongoDB Console, предполагат, че родният драйвер също поддържа подобна функционалност, което не го прави.

var userBlogs = function(username, callback) {
    Blog.find().where("author", username).
          exec(function(err, blogs) {
             // docs contains an array of MongooseJS Documents
             // so you can return that...
             // reverse does an in-place modification, so there's no reason
             // to assign to something else ...
             blogs.reverse();
             callback(err, blogs);
          });
};

След това, за да го извика:

userBlogs(req.user.username, function(err, blogs) {
    if (err) { 
       /* panic! there was an error fetching the list of blogs */
       return;
    }
    // do something with the blogs here ...
    res.redirect('/');
});

Можете също да направите сортиране по поле (като дата на публикация в блог например):

Blog.find().where("author", username).
   sort("-postDate").exec(/* your callback function */);

Горният код ще се сортира в низходящ ред въз основа на поле, наречено postDate (алтернативен синтаксис:sort({ postDate: -1}) .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:намерете и findOne с филтриране на вложени масиви

  2. Как да инсталирате MongoDB Community Edition на Ubuntu

  3. MongoDB $strcasecmp

  4. MongoDB Aggregation Framework - Преименуване на динамично поле

  5. Не мога да инсталирам mongodb doctrine в symfony2 с composer