find()方法中可能的超时 – mongoDb

我正在使用MongoDb和socket.io编写一个Node.js项目。 我遇到了一个问题。 我有一个名为rooms rooms = db.collection('rooms');的集合rooms = db.collection('rooms'); 这是我的代码,当我试图join一个房间

 rooms.find({name: roomName}).limit(1).toArray() .then(function (res) { //if successful res = res[0]; //i get my username 

如果有给定id的房间我连接到它,否则它必须创build。

但是,当我创build一个新的房间,我不明白,但是当我第二次连接(房间已经存在),这一切都好,我得到的所有信息。 所以,当我创build一个房间并连接到它时,我没有得到我的用户名,但是当它创build(我第二次连接到它)时,它显示我的方法。

var mongo = require('mongodb').MongoClient – 模块,

 function http(io) { mongo.connect(config.mongodb_url) .then(function (db) { ... 

-连接,

"mongodb version": "^2.1.7"

这是我创造一个房间

 rooms.findOneAndUpdate( {name: roomName}, {$addToSet: {users: uuid}} ).then(users_update).catch(logger.error); 

})赶上(logger.error);

我想知道find方法是否有一些超时? 或者哪里可以在这里的错误?

我find了答案。 这就是这么简单:我添加{ upstream: true }到我的findOneAndUpdate()函数。