Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 从mongodb集合获取最后一条记录_Database_Mongodb_Collections_Record - Fatal编程技术网

Database 从mongodb集合获取最后一条记录

Database 从mongodb集合获取最后一条记录,database,mongodb,collections,record,Database,Mongodb,Collections,Record,我创建了一个mongo数据库,其中包含一个名为“rooms”的集合。 我想获取最后一个房间以创建下一个房间的id。 你可以从下面看到我那恶心的代码: 房间模式 var mongoose = require('mongoose'); var bcrypt = require('bcryptjs'); var Schema = mongoose.Schema; var RoomSchema = mongoose.Schema({ name: { type: String,

我创建了一个mongo数据库,其中包含一个名为“rooms”的集合。
我想获取最后一个房间以创建下一个房间的id。
你可以从下面看到我那恶心的代码:

房间模式

var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var Schema = mongoose.Schema;

var RoomSchema = mongoose.Schema({
    name: {
        type: String,
        index: true
    },
    users: [{
        type: Schema.Types.ObjectId,
        ref: 'user'
    }],
    messages: {
        type: [String]
    },
    subject: {
        type: String
    },
    id: {
        type: Number
    }
});

var Room = module.exports = mongoose.model('Room', RoomSchema);

module.exports.createRoom = function (newRoom, callback) {
    bcrypt.genSalt(10, function (err, salt) {
        bcrypt.hash(newRoom.password, salt, function (err, hash) {
            newRoom.password = hash;
            newRoom.save(callback);
        });
    });
}
试图拿到最后一个房间

var lastRoom = Room.find({}).sort({$natural:-1}).limit(1);
然后我尝试运行它并输出“lastRoom”,我得到了以下结果:

the last room was: [object Object]

我应该怎么做?

试试这个:var lastRoom=Room.find({}).sort(['id',1]).limit(1)

查询后需要使用callback

Room.find({}).sort({ natural:-1 }).limit(1).then((data) => {
  console.log(data)
})

我在后端执行此操作
错误:sort()参数无效,必须是数组数组
请尝试以下操作:var lastRoom=Room.find({}).sort({'id':-1}).limit(1)
最后一个房间是:[object]
:/你能试着像这样控制它吗:console.log(lastRoom);您从控制台日志中看到了什么?一个奇怪的输出,似乎他没有找到它。(放在这里太长了)谢谢你的帮助!