MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Model.find().toArray() twierdzący, że nie ma metody .toArray()

toArray funkcja istnieje w Cursor klasa ze sterownika Native MongoDB NodeJS (odniesienie). find metoda w MongooseJS zwraca Query obiekt (odniesienie). Istnieje kilka sposobów wyszukiwania i zwracania wyników.

Ponieważ w sterowniku NodeJS dla MongoDB nie ma wywołań synchronicznych, we wszystkich przypadkach należy użyć wzorca asynchronicznego. Przykłady dla MongoDB, które często występują w JavaScript przy użyciu konsoli MongoDB, sugerują, że natywny sterownik również obsługuje podobną funkcjonalność, której nie obsługuje.

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);
          });
};

Następnie, aby to nazwać:

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('/');
});

Możesz także dokonać sortowania według pola (na przykład daty wpisu na blogu):

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

Powyższy kod sortowałby w porządku malejącym na podstawie pola o nazwie postDate (alternatywna składnia:sort({ postDate: -1}) .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy powinienem przechowywać tokeny JWT w redis?

  2. Jak poprawnie wykonać HAVING w MongoDB GROUP BY?

  3. Grupowanie warunkowe z $istnieje wewnątrz $cond

  4. Odwołanie do schematu Mongoose i niezdefiniowany typ „ObjectID”

  5. Jak korzystać z transakcji MongoDB za pomocą Mongoose?