如何查找文件

How to find documents

本文关键字:文件 查找 何查找      更新时间:2023-09-26

下面是app.js中的猫鼬代码

app.get('/view', function (req, res) {

if (err) return handleError(err);
    {

);});

我有两个不同的主机条目,Host_name: Redhat1,Host_name:Redhat2。如何使用猫鼬获取两者的最新条目。在模式中查找上述条件应该修改的内容。请帮忙

试试这个

User.aggregate(
        { $match: { "Host.Host_name": { $in: ["RedHat1", "RedHat2"] }}}
        { $group: { _id: "$Host.Host_name", Time_stamp:{$last:'$Date.Time_stamp'}}}
       ,function (err,docs) {
        if (err) return handleError(err);
                var Users = docs.map(function (User){
                    return {
                        time: User.Time_stamp,
                        host: User._id
                    }
                });
            res.render('index',{Users: Users});
        });

希望这能解决你的问题

最简单的方法:按Host_Name查找(每个名称一个查询),按时间戳排序,限制为1。

// needed to tell mongoose to use ES6 Promises
require('mongoose').Promise = global.Promise;
app.get('/view', function (req, res) {
    var query1 = User.find({ "Host.Host_name": "RedHat1" })
        .sort({ Date.Time_stamp: -1 })
        .limit(1)
        .exec(); // exec() without argument returns a promise
    var query2 = User.find({ "Host.Host_name": "RedHat2" })
        .sort({ Date.Time_stamp: -1 })
        .limit(1)
        .exec();
    Promise.all([query1, query2])
        .then(function (docs) {
            var Users = docs.map(function (User){
                return {
                    time: User.Date.Time_stamp,
                    host: User.Host.Host_name
                }
            });
            res.render('index',{Users: Users});
        }).catch(function (err) {
            console.log(err);
        });
});

编辑:做两个查询导致另一个问题,你必须等待两者是完整的发送响应之前,所以我更新了我的例子。