我读到Mongoose在每个集合中最多只打开一个连接,并且没有任何选项可以更改.
这是否意味着缓慢的mongo查询将使所有后续查询等待?
我什么都知道.js是非阻塞的,但我想知道一个缓慢的查询是否会延迟所有后续查询的执行.以及是否有办法改变这一点.
我读到Mongoose在每个集合中最多只打开一个连接,并且没有任何选项可以更改.
这是否意味着缓慢的mongo查询将使所有后续查询等待?
我什么都知道.js是非阻塞的,但我想知道一个缓慢的查询是否会延迟所有后续查询的执行.以及是否有办法改变这一点.
如果使用默认方法进行mongoose操作,那么它只使用一个连接.连接().要解决这个问题,可以创建多个连接,然后将指向同一模式的模型绑定到该连接.
就像这样:
var conn = mongoose.createConnection('mongodb://localhost/test');
var conn2 = mongoose.createConnection('mongodb://localhost/test');
var model1 = conn.model('Model', Schema);
var model2 = conn2.model('Model', Schema);
model1.find({long query}, function() {
console.log("this will print out last");
});
model2.find({short query}, function() {
console.log("this will print out first");
});
希望有帮助.
Update
var conn = mongoose.createConnection('mongodb://localhost/test', {server:{poolSize:2}});
var model = conn.model('Model', Schema);
model.find({long query}, function() {
console.log("this will print out last");
});
model.find({short query}, function() {
console.log("this will print out first");
});
Update 2 -- Dec 2012