【发布时间】:2019-10-20 09:02:42
【问题描述】:
我一直在使用标准的 mongodb 驱动程序版本 3.2.6 以 express 编写应用程序。我需要对我的数据库进行查询,我想查询 5 年并计算每年的条目。当我静态编写代码时,它可以正常工作,如果我将相同的确切值放入变量中并将其插入查询中,它会拒绝工作。
如果我错过了明显的事情,我深表歉意,但我找不到解决方案。感谢所有试图提供帮助的人:)
此代码有效。输出如下
router.get("/test", (req, res) => {
result = {
title : "Somethings through time",
data : []
}
for(let i = 4;i<9;i++) {
const query = `/2014/`;
db.getDB().collection("somethings").find({"date_of_something": /2014/}).count().then(numOf => {
console.log(query +"\n"+numOf);
});
}
res.json({
success: false
});
});
输出:
[0] /2014/
[0] 24263
[0] /2014/
[0] 24263
[0] /2014/
[0] 24263
[0] /2014/
[0] 24263
[0] /2014/
[0] 24263
此代码不起作用。
router.get("/test", (req, res) => {
result = {
title : "Somethings through time",
data : []
}
for(let i = 4;i<9;i++) {
const query = `/2014/`;
db.getDB().collection("somethings").find({"date_of_something": query}).count().then(numOf => {
console.log(query +"\n"+numOf);
});
}
res.json({
success: false
});
});
输出:
[0] /2014/
[0] 0
[0] /2014/
[0] 0
[0] /2014/
[0] 0
[0] /2014/
[0] 0
[0] /2014/
[0] 0
【问题讨论】:
-
另外,我使用反引号 (
) because I eventually want the query to look like$201{i}` 来循环遍历年份。查询不适用于 " 或 ' 任何一个:/
标签: node.js mongodb express mongodb-query