Node.js 为什么这个mongoose代码没有控制台日志?
我试图学习如何在连接打开的情况下使用mongoDB,我遇到了Mongoose 我试着用mongoose测试我与mongoDB的连接,结果成功了Node.js 为什么这个mongoose代码没有控制台日志?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我试图学习如何在连接打开的情况下使用mongoDB,我遇到了Mongoose 我试着用mongoose测试我与mongoDB的连接,结果成功了 var mongoose = require('mongoose'); var mongoDB = "mongodb://IP:port/database"; mongoose.connect(mongoDB, { useNewUrlParser: true },function(err){console.log("Connected")}); 我的M
var mongoose = require('mongoose');
var mongoDB = "mongodb://IP:port/database";
mongoose.connect(mongoDB, { useNewUrlParser: true },function(err){console.log("Connected")});
我的MongoDB采用以下结构:
数据库名称:db
集合名称:myCollection
集合中的文档结构:{u id:'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!
[]
问题在于你的模型。它试图在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);
});
希望这有帮助:)问题在于您的型号。它试图在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);
});
希望这有帮助:)代码有效!我对此有点困惑:它试图在myCollections中查找文档,即传递给模型创建方法的第一个参数的复数形式。这些词是转换成复数还是只是在结尾加上“s”?例如:如果第一个参数是'is',它是否会更改为'Are'或Iss'?据我所知,它只会在第一个参数的末尾附加一个's'。很高兴它能帮上忙..很高兴编码:)代码有效!我对此有点困惑:它试图在myCollections中查找文档,即传递给模型创建方法的第一个参数的复数形式。这些词是转换成复数还是只是在结尾加上“s”?例如:如果第一个参数是'is',它是否会更改为'Are'或Iss'?据我所知,它只会在第一个参数的末尾附加一个's'。很高兴它能帮上忙..快乐编码:)