我正在尝试学习如何在连接打开的情况下使用mongoDB,我遇到了Mongoose。
我试图用mongoose测试与mongoDB的连接,并且有效。
var mongoose = require('mongoose');
var mongoDB = "mongodb://IP:port/database";
mongoose.connect(mongoDB, { useNewUrlParser: true },function(err){console.log("Connected")});
我的MongoDB具有以下结构:
数据库名称:db
集合名称:myCollection
集合中的文档结构:{_id:'random object string generated by mongoDB, name: 'Name', bill: '56445'}
我想获取所有文档或匹配的文档,例如db.myCollection.find()
或db.myCollection.find({name:'Jeeva'})
这是我尝试过的:
var mongoose = require('mongoose');
var mongoDB = "mongodb://IP:port/db";
mongoose.connect(mongoDB, { useNewUrlParser: true });
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
var Schema = mongoose.Schema;
var myCollection = new Schema({
name : String,
bill : String
}, {collections : 'myCollection'});
var myCollectionModel = mongoose.model('myCollection', myCollection);
var myCollection = mongoose.model('myCollection')
myCollection.find({}, function(error, PO){
console.log("im here!")
console.log(PO);
});
控制台:
im here!
[]
答案 0 :(得分:2)
问题出在您的模型上。它试图在 myCollections 中找到文档,即您传递给模型创建方法的第一个参数的复数形式。这是猫鼬的默认行为。要进行处理,您可以手动将您的收藏名称作为第三个参数。尝试更改
var mongoose = require('mongoose');
var mongoDB = "mongodb://IP:port/db";
mongoose.connect(mongoDB, {
useNewUrlParser: true
});
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
var Schema = mongoose.Schema;
var myCollection = new Schema({
name: String,
bill: String
}, {
collections: 'myCollection'
});
var myCollectionModel = mongoose.model('myCollection', myCollection, 'myCollection');
myCollectionModel.find({}, function(error, PO) {
console.log("im here!")
console.log(PO);
});
希望这会有所帮助:)