mongoDB驱动

js的官方MongoDB驱动程序。在mongodb-core之上提供一个面向最终用户的高级API。

连接mongoDB

  1. 创建一个数据库目录mongod --dbpath "/data"

插入文档

  1. 向app.js中添加以下函数,该函数使用insertMany方法向文档集合中添加三个文档。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // 插入一些文档
    const insertDocuments = (db, callback) => {
    // 获得文档集合
    const collection = db.collection('documents');
    // 插入一些文档
    collection.insertMany([
    {a: 1}, {a: 2}, {a: 3}
    ], (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);
    });
    };
    // result包含来自MongoDB的结果文档
  2. 调用上面的函数

    1
    2
    3
    insertDocuments(db, () => {
    client.close();
    });

找到所有文档

  1. 添加一个返回所有文档的查询。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // 查询所有文档
    const findDocuments = (db, callback) => {
    // 获得文档集合
    const collection = db.collection('documents');
    // 查询文档
    collection.find({}).toArray((err, docs) => {
    assert.equal(err, null);
    console.log("Found the following recoeds");
    console.log(docs);
    callback(docs);
    });
    };

使用查询筛选器查找文档

1
2
3
4
5
6
7
8
9
10
11
12
const updateDocument = function(db, callback) {
// Get the documents collection
const collection = db.collection('documents');
// Update document where a is 2, set b equal to 1
collection.updateOne({ a : 2 }
, { $set: { b : 1 } }, function(err, result) {
assert.equal(err, null);
assert.equal(1, result.result.n);
console.log("Updated the document with the field a equal to 2");
callback(result);
});
}

删除文档