Mysql 多where语句mongodb
好吧,我在mongodb上遇到了困难,来自MySQL的我遇到了麻烦 编写查询以获取我的数据。我的数据库如下所示: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}, {
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的文档?我有,这就是我想到的:*检查上面**但是它什么也不返回:(**我会在上面添加代码^^**