使用MongoDB字段值作为变量

时间:2017-03-03 03:37:04

标签: node.js mongodb express mongoose

我想从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++;
      }
});

1 个答案:

答案 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++; 
    } 
});