- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是经典的 JavaScript 闭包与循环变量问题,但有一点不同。有一个 MongoDB 集合,其中包含存档的推文。我必须对其执行查找操作,搜索各种搜索词。这些单词以字符串形式存在于数组中,必须单独查找它们,并在单个 JSON 响应中返回所有结果。
最简单的方法似乎是在数组中运行 for 循环,并对每个元素执行 MongoJS find() 操作。虽然这实际上有效并返回正确的数据,但循环变量在回调函数中仍然无法访问,因为它始终为 4 - 循环的最后一个可能值,即数组最后一个元素的索引。
我需要知道调用回调时循环变量具有的正确值。任何人都知道如何做到这一点?谢谢。
var searchwords = ['java', 'javascript', 'ruby', 'scala', 'python'];
var json = new Array();
for(t in searchwords) {
var regexp = new RegExp('\\b'+searchwords[t]+'\\b', 'gi');
coll.find({ 'timestamp_ms': { $gte: String(startdate) },
'timestamp_ms': { $ne: undefined },
'text': regexp
}, function(err, docs) {
json.push({
'searchword': searchwords[t],
'tweets': docs.length
});
console.log(t+' : '+docs.length);
});
}
res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
res.end(JSON.stringify(json, null, ' '));
最佳答案
你能做的就是使用这个
var i = 0;
async.eachSeries(searchwords , function(word, cb){
var regexp = new RegExp('\\b'+searchwords[t]+'\\b', 'gi');
coll.find({ 'timestamp_ms': { $gte: String(startdate) },
'timestamp_ms': { $ne: undefined },
'text': regexp
}, function(err, docs) {
json.push({
'searchword':searchwords[t],
'tweets': docs.length
});
console.log(i+' : '+docs.length);
i++;
cb();
});
})
使用 fooloop 进行数据库调用不是一个好主意,因为它会将调用刷新在一起,并且当数组很大时会出现问题。这将为您提供正确的索引,因为在调用 cb() 之前不会调用下一次迭代
关于javascript - 在 MongoJS 中使用循环重复查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41777505/
我无法找到任何有关如何执行此操作的文档或示例,但肯定这是可能的。基本上,我想保留 20 条最近的记录。我想按日期(降序)排序,跳过 20 个,然后删除剩余的内容。 最佳答案 您可以分两步完成 - 1,
我试图使用 findOne 方法。但没有显示任何东西,看起来没有执行。您愿意帮我解决这个问题吗? var mongojs = require('mongojs'); var databaseUrl =
我无法找到任何有关如何执行此操作的文档或示例,但肯定这是可能的。基本上,我想保留 20 条最近的记录。我想按日期(降序)排序,跳过 20 个,然后删除剩余的内容。 最佳答案 您可以分两步完成 - 1,
这是经典的 JavaScript 闭包与循环变量问题,但有一点不同。有一个 MongoDB 集合,其中包含存档的推文。我必须对其执行查找操作,搜索各种搜索词。这些单词以字符串形式存在于数组中,必须单独
我正在使用 mongojs 更新 mongodb 集合中的数据。该程序逐行读取文件,并为每一行在 mongodb 数据库中进行更新。更新工作正常,但控件未返回。 var fs = require('f
我想使用 Node js 在 mongodb 表中查找文档。我目前正在使用 mongojs 插件。 这是我遇到的问题: 我连接到数据库。 我获取当前时间戳 每隔 10 秒我想打印这 10 秒内添加的所
嗨,我是 MongoDB 和 NodeJs 的新手。我正在使用“mongojs”模块来简单地从 mongodb 读取数据。代码如下: var dbname = 'XXXX'; var database
我有一个 Node.js 应用程序,它获取大量具有唯一 ID 的 JSON 数据,然后使用 Mongojs 将它们插入到 MongoDB 中。 问题是,在这么大的数据数组中,可能存在一些重复的文档!所
我正在尝试在 mongojs 中存储和检索日期。这是它的保存方式: var game = { startedOn: new Date() }; db.games.save(game); 当我获取它时,
我正在通过 MongoJS 驱动程序使用 Node.js 和 MongoDB 构建一个简单的应用程序。我的目标是一些重负载(10 分钟内约 10000 个用户, session 大约 30 秒) 我正
我正在为 session 身份验证实现一个 restify 中间件。该函数包含嵌套的异步数据库调用:db.sessions.findOne() 回调中的 db.sessions.remove()。 '
我有以下代码: db.users.save({ username: "admin", array: [{ foo1: "foo1", f
我需要使用 limit 和 skip 从 mongo 获取一些记录。 我正在将 MongoJS 与 NodeJS 结合使用,但下面给出的方法不起作用。 下面是一个例子: db.users.find(f
考虑以下nodejs代码: db = require('mongojs')('database', ['users, sessions']); db.users.insert( { 'email'
我想使用 mongojs 设置整个集合的写入关注点图书馆。 这就是我认为代码可能的样子 var mongojs = require('mongojs'); var db = mongojs('test
我正在尝试学习node、mongodb和mongojs,并且有一个新手问题。 我的路线是这样的...... server.get({path: PATH + '/:author', version:
我正在运行node.js和mongoDB,并以mongojs作为驱动程序。我有以下问题, 我尝试使用 _id 数组查询业务集合,如果我尝试如下动态构建查询,我会得到长度为 0 的数组,这是错误的。
我有 MongoJS 查询调用: db.users.find({username:"eleeist"},function(err, docs) { console.log(docs); });
Node.js,mongojs ,mongodb。我正在使用正则表达式搜索技能列表。这是我的服务器代码: var nconf = require('nconf'); var db = require(
Mongojs 是 mongodb-native 库的瘦包装器,但唯一的问题是我无法监听错误? 需要处理的主要错误是连接错误、无法连接或丢失连接。这是我到目前为止尝试过的示例。 var mongojs
我是一名优秀的程序员,十分优秀!