我正在使用带有MongoDB的expressjs框架的nodejs。在mongoose中创建实例为var User = new userModel(data)。这是我的模型user.js
const userModel = mongoose.model("User", UserSchema);
module.exports.listUser = function() {
var deferred = Q.defer();
var User= new userModel();
User.find({}, function (err, list) {
if (err) {
deferred.resolve({status: 'error'});
} else {
deferred.resolve({ status: 'ok', list: list});
}
});
return deferred.promise;
};
所以你只是混合了一点东西。从Mongoose: Model文档中可以看出,您需要使用模型(在您的情况下为userModel
)来访问不同的CRUD操作。
要创建用户文档,您可以像使用语法一样使用语法,但也必须提供属性。
var User = new userModel({
name: 'Indianv',
website: 'stackoverflow.com',
.......
});
然后,为了在User集合中查找文档,您应该使用:
userModel.find({ name: 'Indianv' }, function(err, userDoc) {
if(!err) {
.....
}
});
那么根据mongoose
documentation你应该按照以下程序执行find
或其他数据库操作
var Person= require('mongoose').model('Person');
exports.getContactList = (req, res) => {
Person.find({}, {}, { limit: 20 }, (error, list) => {
if (error)
res.send(error)
res.json(list)
});
}
一次获取所有文档可能不是一个明智的想法,因此您可以在查询中应用limit
然后执行分页以获取其他相关文档