我正在运行以下形式的事件循环:
var i;
var j = 10;
for (i = 0; i < j; i++) {
asynchronousProcess(callbackFunction() {
alert(i);
});
}
Run Code Online (Sandbox Code Playgroud)
我试图显示一系列显示数字0到10的警报.问题是,当回调函数被触发时,循环已经经历了几次迭代并且它显示了更高的值i.有关如何解决此问题的任何建议?
我正在为MongoDB的聚合管道工作,我正在尝试检索用户不等于变量的项目.
出于某种原因,我无法使其发挥作用.我尝试使用$not,$ne并$nin以不同的方式但不能使它工作.
这是它的样子:
数据样本:
[{
"_id": { "$oid": "565674e2e4b030fba33d8fdc" },
"user": { "$oid": "565674832b85ce78732b7529" }
}, {
"_id": { "$oid": "565674e2e4b030fba33d8fdc" },
"user": { "$oid": "565674832b85ce78732b7529" }
}, {
"_id": { "$oid": "565674e2e4b030fba33d8fdc" },
"user": { "$oid": "56f9dfc5cc03ec883f7675d0" }
}]
Run Code Online (Sandbox Code Playgroud)
管道样本(针对此问题进行了简化):
哪里 req.query.user.id = "565674832b85ce78732b7529"
collection.aggregate([
{
$match: {
user: {
$nin: [ req.query.user.id ],
}
}
}
]
Run Code Online (Sandbox Code Playgroud)
这应该只返回最后一项.
您是否知道如何检索与用户不匹配的数据?
谢谢
编辑: 以下不起作用:
collection.aggregate([
{
$match: {
'user.$oid': {
$nin: [ req.query.user.id ], …Run Code Online (Sandbox Code Playgroud)