均值:查询相关集合给出 'findOne' of undefined
Mean: Query related collections gives 'findOne' of undefined
我是 MEAN 的新手,我有 两个集合用户和仪表板。我有 相关 用户仪表板
Mongo shell
db.users.find() -> { "_id" : ObjectId("573765e5889380a83581f421"), "firstName" : "zx", "lastName" : "zx", "username" : "zx" }
db.dashboard.find() -> { "_id" : ObjectId("573766af2affdfa8aaef44d4"), "sentenceId" : 40, "synced" : 1, "iscorrect" : "no", "user_id" : ObjectId("573765e5889380a83581f421") }
我们可以观察到用户与仪表板相关
db.dashboard.findOne({"user_id" :
ObjectId("573765e5889380a83581f421")})
得到的结果是
{ "_id" : ObjectId("573766af2affdfa8aaef44d4"), "sentenceId" : 40,
"synced" : 1, "iscorrect" : "no", "user_id" :
ObjectId("573765e5889380a83581f421") }
问题从这里开始
我尝试在 express js 中做如下操作
function getById(_id) {
var deferred = Q.defer();
db.dashboard.findOne({user_id : _id}, function (err, user) {
console.log(user)
if (err) deferred.reject(err);
if (user) {
// return user (without hashed password)
deferred.resolve(_.omit(user, 'hash'));
} else {
// user not found
deferred.resolve();
}
});
return deferred.promise;
}
错误信息TypeError: Cannot read property 'findOne' of undefined
我正在使用 mongoskin 并且我不确定 如何在 express
中实施 db.dashboard.findOne
也可以提出任何更好的方法,感谢任何帮助
提前致谢
您引用 dashboard
集合的方式似乎有误。
您可以将数据库实例绑定到集合或使用 collection
方法。
与db.bind
:
function getById(_id) {
var deferred = Q.defer();
db.bind('dashboard');
db.dashboard.findOne({user_id : _id}, function (err, user) {
console.log(user)
if (err) deferred.reject(err);
if (user) {
// return user (without hashed password)
deferred.resolve(_.omit(user, 'hash'));
} else {
// user not found
deferred.resolve();
}
});
return deferred.promise;
}
与db.collection
:
function getById(_id) {
var deferred = Q.defer();
var dashboard = db.collection('dashboard');
dashboard.findOne({user_id : _id}, function (err, user) {
console.log(user)
if (err) deferred.reject(err);
if (user) {
// return user (without hashed password)
deferred.resolve(_.omit(user, 'hash'));
} else {
// user not found
deferred.resolve();
}
});
return deferred.promise;
}
我是 MEAN 的新手,我有 两个集合用户和仪表板。我有 相关 用户仪表板
Mongo shell
db.users.find() -> { "_id" : ObjectId("573765e5889380a83581f421"), "firstName" : "zx", "lastName" : "zx", "username" : "zx" }
db.dashboard.find() -> { "_id" : ObjectId("573766af2affdfa8aaef44d4"), "sentenceId" : 40, "synced" : 1, "iscorrect" : "no", "user_id" : ObjectId("573765e5889380a83581f421") }
我们可以观察到用户与仪表板相关
db.dashboard.findOne({"user_id" : ObjectId("573765e5889380a83581f421")})
得到的结果是
{ "_id" : ObjectId("573766af2affdfa8aaef44d4"), "sentenceId" : 40, "synced" : 1, "iscorrect" : "no", "user_id" : ObjectId("573765e5889380a83581f421") }
问题从这里开始
我尝试在 express js 中做如下操作
function getById(_id) {
var deferred = Q.defer();
db.dashboard.findOne({user_id : _id}, function (err, user) {
console.log(user)
if (err) deferred.reject(err);
if (user) {
// return user (without hashed password)
deferred.resolve(_.omit(user, 'hash'));
} else {
// user not found
deferred.resolve();
}
});
return deferred.promise;
}
错误信息TypeError: Cannot read property 'findOne' of undefined
我正在使用 mongoskin 并且我不确定 如何在 express
中实施db.dashboard.findOne
也可以提出任何更好的方法,感谢任何帮助
提前致谢
您引用 dashboard
集合的方式似乎有误。
您可以将数据库实例绑定到集合或使用 collection
方法。
与db.bind
:
function getById(_id) {
var deferred = Q.defer();
db.bind('dashboard');
db.dashboard.findOne({user_id : _id}, function (err, user) {
console.log(user)
if (err) deferred.reject(err);
if (user) {
// return user (without hashed password)
deferred.resolve(_.omit(user, 'hash'));
} else {
// user not found
deferred.resolve();
}
});
return deferred.promise;
}
与db.collection
:
function getById(_id) {
var deferred = Q.defer();
var dashboard = db.collection('dashboard');
dashboard.findOne({user_id : _id}, function (err, user) {
console.log(user)
if (err) deferred.reject(err);
if (user) {
// return user (without hashed password)
deferred.resolve(_.omit(user, 'hash'));
} else {
// user not found
deferred.resolve();
}
});
return deferred.promise;
}