Mysql 多where语句mongodb

Mysql 多where语句mongodb,mysql,node.js,mongodb,mongoose,mongodb-query,Mysql,Node.js,Mongodb,Mongoose,Mongodb Query,好吧,我在mongodb上遇到了困难,来自MySQL的我遇到了麻烦 编写查询以获取我的数据。我的数据库如下所示: opened: [ {day: "Monday", from: 64800, till: 79200}, {day: "Thuesday", from: 64800, till: 79200}, {day: "Wednesday", from: 64800, till: 79200}, {

好吧,我在mongodb上遇到了困难,来自MySQL的我遇到了麻烦 编写查询以获取我的数据。我的数据库如下所示:

opened: [
            {day: "Monday", from: 64800, till: 79200},
            {day: "Thuesday", from: 64800, till: 79200},
            {day: "Wednesday", from: 64800, till: 79200},
            {day: "Thursday", from: 64800, till: 79200},
            {day: "Friday", from: 64800, till: 79200},
            {day: "Saturday", from: 64800, till: 79200},
            {day: "Sunday", from: 64800, till: 79200}
        ]
我试图实现以下目标: 我有一个变量名为:currendTime,我有一个变量,其中currentDay是全名。因此,变量currentDay包含“Friday”

我想要实现的是搜索currentDay等于Friday且currentTime高于“from”且currentTime低于“Toll”的日期

谁能帮帮我吗

更新 这就是我到目前为止所做的:

db.collection('test', function(err, collection) {
    collection.find(
        {
            opened: {$and: [{$elemMatch: {day: weekDay}}, 
                            {from: {$lt: currentTime}},
                            {till: {$gt: currentTime}}]}
            }).toArray(function(err,items) {
            res.send(items);
        });

您需要将所有要匹配的数组元素字段合并到
$elemMatch
对象中:

db.collection('test', function(err, collection) {
    collection.find({
        opened: {
            $elemMatch: {
                day: weekDay, 
                from: {$lt: currentTime},
                till: {$gt: currentTime}
            }
        }
    }).toArray(function(err,items) {
        res.send(items);
    });
如果只需要匹配的元素,请在
find
调用中包含以下字段投影参数:

{ 'opened.$': 1 }

您是否查阅了将SQL概念转换为MongoDB的文档?我有,这就是我想到的:*检查上面**但是它什么也不返回:(**我会在上面添加代码^^**