我希望它在某些日期之间获取文档,我知道我需要使用 $ and 运算符,但是现在我正在使用Querymen(MongoDB的中间件),我阅读了文档,但找不到任何相关内容。
我正在做什么:
router.get('/',
token({ required: true }),
query({
after: {
type: Date,
paths: ['fecha'],
operator: '$gte'
},
before: {
type: Date,
paths: ['fecha'],
operator: '$lte'
}
}),
index)
所以我的问题是如何使用$ and运算符
答案 0 :(得分:0)
您无需在查询中使用$and
运算符。代替这个:
{
$and: [
{ yourDateField: { $lte: '2018-08-09' } },
{ yourDateField: { $gte: '2018-08-03' } },
]
}
您可以这样做:
{
yourDateField: {
$lte: '2018-08-09',
$gte: '2018-08-03'
}
}
因此您可以将此架构用于查询员:
const querySchema = {
after: {
type: Date,
paths: ['yourDateField'],
operator: '$gte'
},
before: {
type: Date,
paths: ['yourDateField'],
operator: '$lte'
}
};
完整的示例可能看起来像这样:
const querymen = require('querymen');
const app = require('express')();
const querySchema = {
after: {
type: Date,
paths: ['yourDateField'],
operator: '$gte'
},
before: {
type: Date,
paths: ['yourDateField'],
operator: '$lte'
}
};
app.get('/', querymen.middleware(querySchema), (req, res) => {
const { querymen: { query } } = req;
res.json({ ok: true, query });
});
app.listen(8000, () => console.log('Up and running on http://localhost:8000'));
如果您仍然不确定为什么不使用$and
运算符,请查看this answer。