gpt4 book ai didi

node.js - 通过 Async.js 对 MongoDB 进行并行查询

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:01 24 4
gpt4 key购买 nike

已经解决了

我在我的项目中使用 MEAN 堆栈。一切都很好。但我在通过 Mongoose.js 和 Async.js 并行查询 MongoDB 时遇到一些问题。如果我使用系列方法那么一切都可以。

async.map documents, (document, __cb) ->
async.waterfall [
(cb) ->
# some action
console.log 'first func', first++
cb err
,
(cb) ->
db.models.Tags.findOne docId: document.id, (err, tag)->
document.tag = tag # an example
console.log 'second func', second++
cb err
], (err) ->
console.log 'result func', result++
__cb err, document
, (err, documents) ->
#have all documents with tags

如果我的文档数组超过大约 130 个项目,那么我会看到

first func 121
second func 121
result func 121

first func 122
second func 122
result func 122

first func 123
second func 123
result func 123

first func 124
first func 125
second func 124
result func 124
second func 125
result func 125

first func 126
second func 126
result func 126

first func 127
first func 128
first func 129
first func 130
first func 131
first func 132
first func 133
first func 134
first func 135
second func 127
result func 127
first func 136
first func 137
first func 138
first func 139
first func 140
first func 141
first func 142
first func 143
first func 144
first func 145
first func 146
second func 128
result func 128
first func 147
first func 148
first func 149
first func 150
second func 129
result func 129

/home/project/some/project/some/node_modules/mongoose/lib/utils.js:419
throw err;
^
Error: Callback was already called.
at /home/project/some/project/some/node_modules/async/lib/async.js:22:31

Mongoose 可能有同步查询的限制吗?还是蒙戈?我该如何解决这个问题?

最佳答案

我已经解决了。问题不在于 MongoDB。在#some 操作中,我向其他服务器发出请求。 http 模块(Node.js)默认只打开 5 个套接字进行连接。我增加了这个数字,一切都很好。

关于node.js - 通过 Async.js 对 MongoDB 进行并行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29774263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com