我爱编程

Node操作MongoDB

2016-09-19  本文已影响0人  程序员有话说

1. 使用mongodb

var MongoClient = require('mongodb').MongoClient, assert = require('assert');
// Connection URL 
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the Server 
MongoClient.connect(url, function(err, db) {
  assert.equal(null, err);
  console.log("Connected correctly to server");
  db.close();
});
//公共模块可以提取(Node模块创建以及使用)
//Inserting a Document
var insertDocuments = function(db, callback) {
  // Get the documents collection 
  var 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 document collection");
    callback(result);
  });
}
var MongoClient = require('mongodb').MongoClient, assert = require('assert');
// Connection URL 
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the Server 
MongoClient.connect(url, function(err, db) {
    if(!err){
        assert.equal(null, err); //单元测试模块
        // assert.equal(a,b,c);理解:假设a和b相等则相安无事,如果a和b不相等则输出c语句。
        console.log("Connected correctly to server");
        insertDocuments(db, function() {
            db.close();
        });
    }else{
        console.log(err);
    }
});
// Updating a document
var updateDocument = function(db, callback) {
  // Get the documents collection 
  var 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);
  });  
}
var MongoClient = require('mongodb').MongoClient, assert = require('assert');
// Connection URL 
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the Server 
MongoClient.connect(url, function(err, db) {
  assert.equal(null, err);
  console.log("Connected correctly to server");
 // insertDocuments(db, function() {
    updateDocument(db, function() {
      db.close();
    });
 // });
});
var findDocuments = function(db, callback) {
    // Get the documents collection 
    var collection = db.collection('documents');
    // Find some documents 
    collection.find({}).toArray(function(err, docs) {
        assert.equal(err, null);
        assert.equal(4, docs.length);//注意:文档长度
        console.log("Found the following records");
        console.dir(docs);
        callback(docs);
    });
}
var MongoClient = require('mongodb').MongoClient, assert = require('assert');
// Connection URL 
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the Server 
MongoClient.connect(url, function(err, db) {
    assert.equal(null, err);
    console.log("Connected correctly to server");
 
    //insertDocuments(db, function() {
    //  updateDocument(db, function() {
    //      deleteDocument(db, function() {
                findDocuments(db, function() {
                    db.close();
                });
    //      });
    //  });
    //});
});

2. 使用mongoose

备注:使用之前一定要安装node.js 和 mongodb

NPM 包管理地址:https://www.npmjs.com/package/mongoose

//mongoose 链接
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/project');
//通过Schema创建一个模式
var Schema = mongoose.Schema;
//实例化自定义文档方法
var blogSchema = new Schema({
  title:  String,
  author: String,
  body:   String,
  hidden: Boolean,
  meta: {
    votes: Number,
    favs:  Number
  }
});
//创建一个模型
var Blog = mongoose.model('Blog', blogSchema);
//存储数据
var Blog = new Blog({
    title: '痛并快乐着',
    author: '白岩松',
    body: '痛并快乐着一本经历',
    hidden: false,
    meta: {
        votes: 12,
        favs:  30
    }
})
//保存数据库
Blog.save(function (err) {
    if (err) {
        console.log(err);
    } else {
        console.log('saved OK!');
    }
    mongoose.connection.close();
});
//mongoose 链接
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/project');
//通过Schema创建一个模式
var Schema = mongoose.Schema;
//实例化自定义文档方法
var blogSchema = new Schema({
  title:  String,
  author: String,
  body:   String,
  hidden: Boolean,
  meta: {
    votes: Number,
    favs:  Number
  }
});
//创建一个模型
var BlogModel = mongoose.model('Blog', blogSchema);
//查询条件
var where = {author:"白岩松"};
// 待返回的字段
var fields   = {title : 1, author : 1, body : 1}; 
var options  = {};
BlogModel.find(where, fields, options, function(error, result){
    if(error) {
        console.log(error);
    } else {
        console.log(result);
    }
    //关闭数据库链接
    mongoose.connection.close();
});
//mongoose 链接
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/project');
//通过Schema创建一个模式
var Schema = mongoose.Schema;
//实例化自定义文档方法
var blogSchema = new Schema({
  title:  String,
  author: String,
  body:   String,
  hidden: Boolean,
  meta: {
    votes: Number,
    favs:  Number
  }
});
//创建一个模型
var BlogModel = mongoose.model('Blog', blogSchema);
var conditions = {author : '白岩松'};
var update     = {$set : {age : 27, title : 'model_demo_title_update'}};
var options    = {upsert : true};
BlogModel.update(conditions, update, options, function(error){
    if(error) {
        console.log(error);
    } else {
        console.log('update ok!');
    }
    //关闭数据库链接
    mongoose.connection.close();
});
//mongoose 链接
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/project');
//通过Schema创建一个模式
var Schema = mongoose.Schema;
//实例化自定义文档方法
var blogSchema = new Schema({
  title:  String,
  author: String,
  body:   String,
  hidden: Boolean,
  meta: {
    votes: Number,
    favs:  Number
  }
});
//创建一个模型
var BlogModel = mongoose.model('Blog', blogSchema);
var conditions = {title: 'model_demo_title_update'};
BlogModel.remove(conditions, function(error){
    if(error) {
        console.log(error);
    } else {
        console.log('remove ok!');
    }
    //关闭数据库链接
   mongoose.connection.close();
});
上一篇下一篇

猜你喜欢

热点阅读