我是MEAN Stack的新手,当我在获得响应后查询mongo时
db.dashboard.find()
[{
"_id" : ObjectId("57384b402affdfa8aaef44d7"),
"file" : "/fire.wma",
"result" : "Ap",
"sentenceId" : 40,
"synced" : 1,
"iscorrect" : "no",
"user_id" : ObjectId("57384a577c5176914524bd5c")
}, {
"_id" : ObjectId("57384e3fbb5e9f33f7f0150e"),
"file" : "/check.wma",
"result" : "AM",
"sentenceId" : 90,
"synced" : 0,
"iscorrect" : "yes",
"user_id" : ObjectId("57384a577c5176914524bd5c")
}]
仪表板集合中有2个对象
我试图在快递中做同样的事情,但我无法得到理想的结果
function getById(_id) {
var deferred = Q.defer();
var dashboard = db.collection('dashboard');
db.collection('dashboard').find({user_id : ObjectId(_id)}, function (err, user) {
console.log(user)
console.log(_id)
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;
}
我没有从Mongodb获得价值,而是获得像
这样的价值观Readable {
pool: null,
server: null,
disconnectHandler:
{ s: { storedOps: [], storeOptions: [Object], topology: [Object] },
length: [Getter] },
.........
.........
任何有关从mongodb获取所有值的帮助都非常感谢。
预期输出应该是从mongodb查询的输出
答案 0 :(得分:1)
查找返回cursor,然后您需要toArray
才能获得结果:
function getById(_id) {
var deferred = Q.defer();
var dashboard = db.collection('dashboard');
db.collection('dashboard')
.find({user_id : ObjectId(_id)})
// *****
.toArray(function (err, user) {
console.log(user)
console.log(_id)
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;
}