javascript - 查询 Mongodb 时混合字段和 js 函数

标签 javascript mongodb

查看此文档:

{
"creation_date" : ISODate("2015-02-10T03:00:00.000Z"),
"days_of_validity": 10
}

我正在尝试查询所有文档

"creation_date" < today -  "days_of_validity"

这是我迄今为止最好的努力:

docs.find({"creation_date": 
{$lt:  new Date().setDate(new Date().getDate() - days_of_validity)}})

问题是,显然我不能将 js 函数与 mongo 字段混合在一起。

关于如何解决这个问题有什么想法吗?

最佳答案

您好,我尝试了更多计算,希望这会对您有所帮助

    db.collectionName.aggregate({
    "$project": {
    "crationTimestamp": {
        "$subtract": [{
            "$divide": [{
                "$subtract": ["$creation_date", new Date("1970-01-01")]
            }, 1]
        }, {
            "$mod": [{
                "$divide": [{
                    "$subtract": ["$creation_date", new Date("1970-01-01")]
                }, 1]
            }, 1]
        }]
    },
    "days_of_validity": "$days_of_validity",
    "todayTimeStamp": {
        "$subtract": [new Date().getTime(), 0]
    },
    "creation_date": "$creation_date"
    }
}, {
    "$project": {
    "dayDiff": {
        "$multiply": ["$days_of_validity", 24, 60, 60, 1000]
    },
    "todayTimeStamp": "$todayTimeStamp",
    "crationTimestamp": "$crationTimestamp",
    "days_of_validity": "$days_of_validity",
    "creation_date": "$creation_date"

    }
}, {
    "$project": {
    "todayAndDaysDiff": {
        "$subtract": ["$todayTimeStamp", "$dayDiff"]
    },
    "crationTimestamp": "$crationTimestamp",
    "days_of_validity": "$days_of_validity",
    "creation_date": "$creation_date"
    }
}, {
    "$project": {
    "finalDiff": {
        "$subtract": ["$crationTimestamp", "$todayAndDaysDiff"]
    },
    "days_of_validity": "$days_of_validity",
    "creation_date": "$creation_date"
    }
}, {
    "$match": {
    "finalDiff": {
        "$lt": 0
    }
    }
}, {
    "$project": {
    "days_of_validity": "$days_of_validity",
    "creation_date": "$creation_date"
    }
})

关于javascript - 查询 Mongodb 时混合字段和 js 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28585918/

相关文章:

node.js - 使用 Gulp 管理打开和关闭 MongoDB

Javascript 覆盖属性设置功能

javascript - 使用meta.tdAttr的网格列渲染器工具提示

javascript - 将 javascript 变量保存到 JSON 文件

node.js - Mongoose 更新 *ONE* 字段(如果找到),否则使用所有字段创建新字段

javascript - 选择具有矩形或 Angular 嵌套数组元素

java - 使用泛型为 MongoDB POJO 创建包装器

javascript - JQuery-UI Datepicker() 单击“以编程方式完成”

javascript - 如何使用 Nodejs 抓取 QlikView 表?

mongodb - 如何使用 mongo-template 对数据进行分组