MongoDB的JavaScript驱动使用示例

为了使数据库存储的开发与服务器端的nodejs保持一致,尝试Mongodb的驱动也使用JavaScript版,现总结如下:

      A.数据库安装与配置:

        话说MongoDB的来历,内容来自互联网。

mongo不是芒果(mango),取自humongous(海量的)。是一种开源的文档数据库──nosql数据库的一种。

nosql是“not only sql”,而不是“no sql”。nosql的特点:非关系型,分布式,开源,可水平扩展,模式自由,支持replication,简单的API,最终一致性

      MongoDB是一种面向集合的,模式自由的文档数据库

      MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。

      MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。

        MongoDB的安装非常简单,在管网下载:http://www.mongodb.org/downloads


         我选择的是Mac OS X(64位)版,找到合适的路径解压即可。然后就可以在终端启动mongodb了,

         命令:

	./mongod --dbpath ../data/esrichina
	需要注意操作权限,以及端口占用(非正常关闭后)

如图所示,表明mongodb启动正常,可以在浏览器端访问:http://127.0.0.1:28017

另外可以在新打开的终端窗口中操作数据库
命令:
./mongo 显示数据库版本,并默认连接到test文件夹下
通过show dbs可以现实当前数据存储情况;
use esrichina可以实现数据库切换
db.users.insert({})实现在esrichina的文件夹下的users集合下插入记录
db.users.find()实现数据查询
更多命令请参考http://www.cnblogs.com/TankMa/archive/2011/06/08/2074947.html

B.JavaScript脚本驱动安装与使用
        对于具有nodejs环境的服务器环境来说,js的驱动配置相当简单。
     npm install -g mongodb
     值得注意的是需要翻墙工具支持,另外相应文件目录权限
     npm install还可以安装其他的拓展组件,如express-mongoose	mongoose
    配置完成后,测试代码非常简单 node app.js
        
//MongoDB
var mongodb = require("mongodb");
var MongoClient = mongodb.MongoClient;

var dbCollection;

function createConn(onCreate){
	MongoClient.connect("mongodb://localhost:27017/esrichina", function(err, db) {
    if(!err) {
    	console.log("We are connected");
    }
    dbCollection = db.collection(‘users‘);
    onCreate();
   });
}
function removeData(data){
	dbCollection.remove({"name":"gisxy"},{w:1}, function(err, result){
	});
}
function insertData(data){
	dbCollection.insert(data,{w:1},function (err,inserted) {
  	  if(!err)
  	  {
    	console.log("insert success!");
      }
	});
    
    dbCollection.find().toArray(function(err, items) {
    	console.log(items);
	});

}
更多JavaScript的mongodb驱动使用请参考官方文档



MongoDB的JavaScript驱动使用示例,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。