mongoose无法查询数据
发布于 9 年前 作者 Krispomoho 4929 次浏览 最后一次编辑是 8 年前 来自 问答

数据库名:pomoho, 里面有一个user的集合 db.png

"use strict";
var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost','pomoho');
db.on('error', function (err) {logger.log('error', 'db error', err)});
db.once('open', function () {
	console.log("link database success")
});
var mySchema = new mongoose.Schema({
	name: 'string',
	age: 'number'
});
var user = mongoose.model('user', mySchema);
user.find(function (err, user) {
	if (err) {
		return next(err);
	}
	console.log(user)
});

按照我上面的写法,find()中的函数都不会执行; 但是按照下面的写法,user返回一个空数组。

"use strict";
var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost','pomoho');
db.on('error', function (err) {logger.log('error', 'db error', err)});
db.once('open', function () {
	console.log("link database success")
});
var mySchema = new mongoose.Schema({
	name: 'string',
	age: 'number'
});
var user = db.model('user', mySchema);
user.find(function (err, user) {
	if (err) {
		console.log(err);
	}
	console.log(user)
});

我不知道哪里出了问题,mongoose能不能指定查询某一个集合中的数据。

7 回复

user.find({},function (err, user) { if (err) { return next(err); } console.log(user) });

这样才行吧

@zkaip 我试过了,没有用,依旧查询不出来

@Krispomoho mongoose 默认生成的collection名字为users,是负数,不是user

@TimothyJin 那我想连接user数据库怎么办?

@TimothyJin 我把数据库中的集合名改为了负数,就能查出来了

@Krispomoho 自己查看mongose 的 schema配置

回到顶部