为什么不显示任何创build在nodejs和mongoose的集合

我不知道当我在mongodb中创build一个新的集合时发生了什么,为了检查,我有这个代码

我在MongoDB中有这个数据

> use mongo switched to db mongo > db.users.find(); { "_id" : ObjectId("55431e3bdb99b7996f752f8f"), "name" : "David" } { "_id" : ObjectId("55431e42db99b7996f752f90"), "name" : "Juan" } > 

这是我的app.js

 var express = require('express'); var mongoose = require('mongoose'); var app = express(); //Connect to mongodb mongoose.connect("mongodb://localhost/mongo", function(err, res){ if(err) throw err; console.log("Connected to mongodb"); }); //Model mongoose.model('users', {name: String}); //Router app.get('/data', function(req, res){ mongoose.model('users').find(function(err, users){ res.send(users); }); }); //Server app.listen(3000, function(){ console.log("server running"); }); 

这是浏览器的结果

[{ “_id”: “55431e3bdb99b7996f752f8f”, “名”: “大卫”},{ “_ ID”: “55431e42db99b7996f752f90”, “名”: “胡安”}]

到现在为止还挺好。

当我在名为“testing”或其他名称的同一个数据库中创build一个新的集合,我可以findmongodb

 > use mongo switched to db mongo > db.test.find(); { "_id" : ObjectId("55501179b5ae498fb42a19e3"), "name" : "Iron" } { "_id" : ObjectId("5550238d82553eae20688f6c"), "name" : "Batman" } > 

我的app.js修改了新的集合

 var express = require('express'); var mongoose = require('mongoose'); var app = express(); //Connect to mongodb mongoose.connect("mongodb://localhost/mongo", function(err, res){ if(err) throw err; console.log("Connected to mongodb"); }); //Model mongoose.model('test', {name: String}); //Router app.get('/data', function(req, res){ mongoose.model('test').find(function(err, test){ res.send(test); }); }); //Server app.listen(3000, function(){ console.log("server running"); }); 

这是浏览器的结果

[]

这是我的问题,为什么我的浏览器的结果是空的….请帮助我,我不知道如果我的db.test.find()有数据会发生什么,谢谢

mongoose会复制收集名称,除非您给它一个特定的名称使用。 所以,在封面下,它实际上是试图使用tests作为集合名称。 添加名称作为model声明的第三个参数。

 mongoose.model('test', {name: String}, 'test');