使用NodeJs将文档插入Mongodb会返回文档,但它不在集合中

时间:2014-09-22 12:03:19

标签: node.js mongodb mongodb-query

我有一个奇怪的问题,我有一个测试,看看证明如果存在具有相同名称/电子邮件的用户就无法创建新用户,但它似乎总是失败。但是,当我查看将用户添加到具有预期详细信息的数据库的第一步时,它会插入并回调文档:

[ { Username: 'AccountUser',
    Email: 'some@email.com',
    CreatedDate: Mon Sep 22 2014 12:52:48 GMT+0100 (GMT Summer Time),
    _id: 54200d90d0a34ffc1565df13 } ]

所以,如果我从insert中返回文件的console.log,那就是我得到的,这是正确的,并且_id已经由mongo设置,这是正确的,所以我知道调用成功,并且没有错误。

但是,如果我然后去查看数据库(MongoVUE)那个集合是空的,那么我有点困惑为什么会发生这种情况。

我正在使用池化的mongodb连接(即在应用程序设置期间设置然后使用app.set("database_connection", database);。所以我有点困惑为什么会发生这种情况?

这是一些示例代码,它是较大代码的一部分,但基本上包含在promise中:

// Point of connection creation
var mongoClient = mongodb.MongoClient;
var connectionCallback = function (err, database) {
    if (err) { reject(err); }
    resolve(database);
};

try
{ mongoClient.connect(connectionString, connectionCallback); }
catch(exception)
{ reject(exception); }

// Point of usage
var usersCollection = connection.collection("users");
usersCollection.insert(userDocument, function(err, docs) {
    if(err) {
        reject(err);
        return;
    }

    console.log(docs);
    resolve(docs[0]);
});

所以我创建连接并传回数据库以供其他地方使用,然后在插入点我获得连接,获取集合然后插入其中,并记录添加的文档,这就是上面的内容记录输出。

最后还在运行:

  • Windows 8.1
  • 节点0.11.13
  • npm mongodb latest
  • MongoDB 2.6.1

1 个答案:

答案 0 :(得分:0)

不是我希望的答案,但我重新启动计算机(很少发生),问题不再发生。我不知道是什么导致了它,我仍然有点担心它会再次发生,但现在我又恢复了运行。