我正在使用 MongoDb 和 socket.io 编写 Node.js 项目。我遇到了一个问题。我有一个名为 rooms 的集合 rooms = db.collection('rooms');
这是我尝试加入房间时的代码
rooms.find({name: roomName}).limit(1).toArray()
.then(function (res) { //if successful
res = res[0]; //i get my username
如果有一个房间具有给定的id
,我会连接到它,否则必须创建它。
但是当我创建一个新房间时,我得到未定义
,但是当我第二次连接时(房间已经存在),一切正常,我得到了所有信息。因此,当我创建一个房间并连接到它时,我没有得到我的用户名,但是当它创建时(我第二次连接到它)它会向我显示该方法。
var mongo = require('mongodb').MongoClient
- 模块,
function http(io) { mongo.connect(config.mongodb_url)
.then(function (db) { ...
-连接,
“mongodb版本”:“^2.1.7”
这就是我创建房间的方式
rooms.findOneAndUpdate(
{name: roomName},
{$addToSet: {users: uuid}}
).then(users_update).catch(logger.error);
}).catch(logger.error);
我想知道find方法是否有超时?或者哪里会出现错误?
最佳答案
我找到了答案。就这么简单:我将 {upstream: true }
添加到我的 findOneAndUpdate()
函数中。
关于node.js - find() 方法可能超时 - mongoDb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35826695/