如何让Mongoose列出集合中的所有文档?要判断集合是否为空?

Mel*_*ssa 2 javascript mongoose mongodb node.js mean-stack

我正在使用MEAN堆栈并在Mongoose中编写这些方法.我想知道我放在Mongoose模型文件中的内容有什么问题.我想使用Mongoose简单地打印出myModel集合中所有文档的列表.

myModel.methods.myMethod = function(cb){
  this.model("Bids").find({}, 'myField', function(err, results){
    if (err){console.log(err);return err;}
    console.log("okay");
    console.log(results);
  })
  this.save(cb);
}
Run Code Online (Sandbox Code Playgroud)

另外,我可以在Mongoose中编写什么代码来判断myModel集合是否为空?


教一个男人如何钓鱼比给他一条鱼更好......

因此,如果您可以建议我可以安装哪些调试工具(例如Express中间件),这将有助于我自我调试,这将非常有用.请在此处发布您的调试建议.

Pri*_*aaS 5

我假设猫鼬所需的其他所有设置都是正确的.

在下面的一行,我认为不需要'myField'.

  this.model("Bids").find({}, 'myField', function(err, results)
Run Code Online (Sandbox Code Playgroud)

这里有更多从头开始的事情,也许它会帮助你追溯你的步骤:

 var mongoose = require('mongoose');

    //connection to Mongodb instance running on=======
    //local machine or anywhere=========================
    var uri = 'mongodb://localhost:27017/test';
    var connection = mongoose.createConnection(uri);


    //Define Schema==================================
    var Schema = mongoose.Schema;
    var BlogPostSchema = new Schema({
      author: { type: Schema.Types.ObjectId },
      title: String,
      body: String
    });


    //Create model===================================================
    var BlogPostModel = connection.model('BlogPost', BlogPostSchema);


    //function to insert doc into model NOTE "pass in your =======
    //callback or do away with it if you don't need one"=========
    var insertBlogPost = function (doc, callback) {
      
      //here is where or doc is converted to mongoose object
      var newblogPost = new BlogPostModel(doc); 
      
      //save to db
      newblogPost.save(function (err) {

        assert.equal(null, err);
        
        //invoke your call back if any
        callback();
        console.log("saved successfully");
      });
    };


    //function to get all BlogPosts====================================
    var getAllBlogPosts = function (callback) {

    //mongoose get all docs. I think here answers your question directly
      BlogPostModel.find(function (err, results) {
        assert.equal(null, err);
        
        //invoke callback with your mongoose returned result
        callback(results);
      });
    };


    //you can add as many functions as you need.

    //Put all of your methods in a single object interface 
    //and expose this object using module.

    var BlogPostManager = {
        insertBlogPost: insertBlogPost,
        getAllBlogPosts : getAllBlogPosts
    }


    module.exports = BlogPostManager;
Run Code Online (Sandbox Code Playgroud)