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()
函数。