使用MongoDB,建议总是重用相同的数据库连接,并拥有一个连接池来支持一些并发。
在node-mongodb-native
1.x
中,您可以配置数据库和服务器对象,创建一个如下所示的池:
var server = new Server(
config.host,
config.port,
{
auto_reconnect : true,
poolSize : 5 // <= here is the pool
}
);
var db = new Db(
config.database,
server
);
db.open(function(err, db) {
// ...
}
在2.0
中,他们弃用了MongoClient
以外的所有内容进行连接:
MongoClient.connect(URI, callback);
我在哪里添加泳池选项?我现在自动拥有一个游泳池吗?
使用2.1
他们更进一步,建议使用生成器:https://mongodb.github.io/node-mongodb-native/2.1/reference/ecmascript6/connecting/
这是否有效地为每个动作再次使用单独的连接?是否使用过时的游泳池?
答案 0 :(得分:1)
MongoClient.connect
使用带In [153]: dict1 = [{'file': '2015a', 'instrument': 'NES', 'gain': '23'}, {'file': '2015b', 'instrument': 'NES', 'gain': 26}, {'file': '2015d', 'instrument': 'NES', 'gain': 25}]
In [154]: dict2= [{'file': '2015a', 'instrument': 'NES', 'gain': 3333}, {'file': '2015c', 'instrument': 'PS2', 'gain': 26}, {'file': '2015d', 'instrument': 'NES', 'gain': 4545}]
In [155]: for d in dict2:
.....: if d.get('instrument') == 'PS2':
.....: dict1.append(d)
.....:
In [156]: dict1
Out[156]:
[{'file': '2015a', 'gain': '23', 'instrument': 'NES'},
{'file': '2015b', 'gain': 26, 'instrument': 'NES'},
{'file': '2015d', 'gain': 25, 'instrument': 'NES'},
{'file': '2015c', 'gain': 26, 'instrument': 'PS2'}]
字段的可选options
参数,可以设置连接池的大小:
server
如果您不指定,则默认const options = {
server: {
poolSize: 10
}
};
MongoClient.connect(url, options, callback);
为5. poolSize
选项记录为here。