节点mongodb驱动程序可以插入,计数,但查找

时间:2018-03-30 13:00:39

标签: node.js mongodb

我正在将现有应用迁移到mongodb,

我的代码主要位于节点native mongodb驱动程序站点上。

var fs = require('fs-extra');
var MongoClient = require('mongodb').MongoClient;
const mongoConfig = JSON.parse(fs.readFileSync("./configuration/mongo.json", "utf-8").toString());
const assert = require('assert');


const insertDocuments = function(db, callback) {
    // Get the documents collection
    const collection = db.collection('documents');
    // Insert some documents
    collection.insertMany([
        {a : 1}, {a : 2}, {a : 3}
    ], function(err, result) {
        assert.equal(err, null);
        assert.equal(3, result.result.n);
        assert.equal(3, result.ops.length);
        console.log("Inserted 3 documents into the collection");
        callback(result);
    });
};


const findDocuments = function(db, callback) {
    // Get the documents collection
    const collection = db.collection('documents');
    // Find some documents
    collection.find({}).toArray(function(err, docs) {
        assert.equal(err, null);
        console.log("Found the following records");
        console.log(docs)
        callback(docs);
    });
};
function initDb() {

    var uri = "mongodb://" + mongoConfig.user + ":" + mongoConfig.pass + "@" + mongoConfig.host + ":" + mongoConfig.port;
    MongoClient.connect(uri, {auth: {user: mongoConfig.user, password: mongoConfig.pass}, authSource: mongoConfig.dbname}, function (err, client) {
        if (err) {
            console.error(err);
        }

        const db = client.db('test');

        insertDocuments(db, function() {
            findDocuments(db, function() {
                client.close();
            });

        });
}

initDb();

然后我在控制台中得到以下输出:

Inserted 3 documents into the collection
Found the following records
[]

使用相同的计算机将Robomongo从同一台计算机用于同一台服务器,我可以查看和编辑数据。

插入工作正常,因为我写这篇文章时我已经插入了十几个测试文档。

但是总是找回一个空数组。 但是,使用toArray的count instaed会返回相关值。

我正在使用:    “mongodb”:“^ 3.0.5”,

来自我的package.json

我缺少什么?

0 个答案:

没有答案