node.js - find() 方法可能超时 - mongoDb

标签 node.js mongodb

我正在使用 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/

相关文章:

mongodb - Mongo聚合根据字段名收集数组元素

node.js - node js中的stat fstat和lstat函数有什么区别

javascript - 与异步 Node JS API 调用作斗争

node.js - 错误: executing command 'ant' - After installation and setting ANT_HOME

连接字符串中的 MongoDB ssl .pem 文件

mongodb - 用于编辑 MongoDB 配置文件的 Bash 脚本

node.js - 在 MEANJS 的 CRUD 中的 URL 中使用 slugs

javascript - 如何在 Node redis上getAll

javascript - 需要在async find操作里面修改json和return

node.js - 我在 postman 中使用什么 URL?