如何获取Mongo集合中最后一项的值

时间:2017-01-18 07:11:26

标签: javascript mongodb meteor

我读了一个Mongo集合,我想得到最后一项的价值。我做了一个方法从最旧到最新(stackoverflow question)进行排序,只采取第一项,但我无法得到他的价值。

这是我在集合中插入数据的代码:

'container.start': function(id) {
    var ctn = docker.getContainer(id);
    ctn.start(Meteor.bindEnvironment(function(err, data) {
      if(err){
        ErrorsContainer.upsert({

        }, {
            error: err
        });
        console.log(err);
      }else{
        console.log(data);
      }
    }));
}

然后是我读取集合的代码:

  'click .start'(event) {
      const idDB = this._id
      const container = InfosContainers.findOne({_id: idDB});
      const name =  container["nameContainer"];
      const idContainer = container["idContainer"];
      console.log("the container: " + name + " is going to be started. His id is: " + idContainer);
      Meteor.call("container.start",idContainer);
      //get the last error
      var error = ErrorsContainer.find({}, {sort: {_id: 1, limit: 1}});
      if(error){
        alert(error[error]); //tried error.error too
      }
  }

那我怎么能得到集合错误的值?

2 个答案:

答案 0 :(得分:0)

问题是,集合的错误包含其他内容,我不得不这样做:

  var lastError = ErrorsContainer.findOne({}, {sort: {_id: 1}});
  console.log(lastError.error.message);

答案 1 :(得分:0)

DO

{ sort: { created : -1 } }

其中created是文档的创建时间 -1表示在DEC ordre中排序(1表示按INC顺序排序)