我想从Mongo记录中取一个字段并将其存储在变量中。下面的查询返回正确的记录,但它也返回整个对象。如何提取' sid'的价值?场?
这是我的架构:
var SessionsSchema = mongoose.Schema({
session: {
sid: String,
dataloop: {
timeStamp: Date,
sensorValues:{
value: Number,
index: Number
}
}
}
});
以下是查询&函数i用于存储值:
Sessions.find().sort({ 'sid' : -1 }).limit(1).exec(function(err, post) {
if(post == null){
lastSession = post.sid;
sessionID = 1;
}else {
lastSession = post.sid;
sessionID = lastSession++;
}
});
答案 0 :(得分:1)
find
返回一个数组,而不是一个对象,您需要以数组的形式访问post
。使用post[0]
代替post
此外,还会定义post[0].sid
,您需要将其用作post[0].session.sid
。
Sessions.find().sort({ 'sid' : -1 }).limit(1).exec(function(err, post) {
if(post.length===0){
lastSession = post[0].session.sid;
sessionID = 1;
}else {
lastSession = post[0].session.sid;
sessionID = lastSession++;
}
});