标签(空格分隔): 数据库 MongoDbjavascript
当前版本 2.X 解压至任意目录,最好不要是c盘. 在根目录下创建一个文件夹用来存储工程 个人例子: 安装至: d:\mongodb 创建存储目录 d:\mongodb\blog 运行CMD,切入bin目录 cd d:\mongodb\bin 启用数据库 mongod -dbpath “d:\mongodb\blog” 这样就完毕了,若是关闭CMD,数据库就会关闭. 创建一个快速启动的bat文件,由于每次启动服务器都是这样的命令 启动mongodb.bat: d:\mongodb\bin\mongod.exe -dbpath d:\mongodb\blog
1. package.json dependencies对象中加入 "mongodb": "*" 2. 在工程目录下运行 npm install 更新依赖文件 3. 引入
var Db = require(‘mongodb’).Db; var Connection = require(‘mongodb’).Connection; var Server = require(‘mongodb’).Server; // ‘blog’ 数据库名称 mongodb就是一个Db实例 var mongodb = new Db(‘blog’, new Server(‘localhost’, Connection.DEFAULT_PORT, {}));java
属性: serverConfig 拓扑结构, 好比上面实例的 new Server(‘localhost’, Connection.DEFAULT_PORT, {}) bufferMaxEntries 数据库当前缓冲区值 databaseName 当前数据库名称, 好比上面实例的’blog’mongodb
API: //将用户添加到该数据库 Db.addUser(username, password, options, callback) //删除用户 Db.removeUser(username, callback) //返回管理员数据库实例 Db.admin() //验证用户 Db.authenticate(username, password, options, callback) //关闭链接 force布尔值,是否强制关闭 Db.close(force, callback) //取一个特定集合 Db.collection(name, options, callback) //获取全部集合 Db.collections(callback) //建立一个集合 Db.createCollection(name, options, callback) //建立索引 Db.createIndex(name, fieldOrSpec, options, callback) //删除集合 Db.dropCollection(name, callback) //删除数据库 Db.dropDatabase(callback) //获取集合中的信息 Db.listCollections(name, options, callback) //打开数据库 Db.open(callback) //登出数据库 Db.logout(options, callback) //统计全部数据 Db.stats(options, callback)shell
通常使用流程: //打开数据库 Db.open(function(err,db){ //读取集合 db.collection(name,function(err,collection){ //在集合中插入数据 collection.insert({‘age’:21,‘email’:‘xxxx’}, {safe: true}, function(err, user){Db.close();}) })数据库
})
API: //查询匹配文档的数目 count(query, options, callback) //建立索引 createIndex(fieldOrSpec, options, callback) //删除多个文档 deleteMany(filter, options, callback) //删除一个文档 deleteOne(filter, options, callback) //删除集合 drop(callback) //删除集合中的索引 dropAllIndexes(callback) //删除指定索引 dropIndex(indexName, options, callback) //是否存在索引,不存在就建立 ensureIndex(fieldOrSpec, options, callback) //查询 find(query) //查询第一个 findOne(query, options, callback) //查找和替换文档 findAndModify(query, sort, doc, options, callback) //查找并删除 findAndRemove(query, sort, options, callback) //找到一个文件并删除 findOneAndDelete(filter, options, callback) //找到一个文件并替换 findOneAndReplace(filter, replacement, options, callback) //找到一个文件并更新 findOneAndUpdate(filter, update, options, callback) //全部索引集合 indexes(callback) //检查集合中是否存在索引 indexExists(indexes, callback) //获取此集合的索引信息 indexInformation(options, callback) //批量写 initializeOrderedBulkOp(options, callback)npm
//插入文档到数据库中 docs 对象或数组, insert(docs, options, callback) 实例 inset({'a':1}, {w:1},function(err,data){}) //插入数组 insertMany(docs, options, callback) //插入一个单个文件 insertOne(doc, options, callback) //重建索引 reIndex(callback) //删除文件 remove(selector, options, callback) //重命名集合 rename(newName, options, callback) //保存 save(doc, options, callback) //统计全部数据 stats(options, callback) //更新集合 update(selector, document, options, callback)
多个键和值有序的放置在一块儿即是文档,基本数据单元 javascript 中,文档表示为对象. 每一个文档都有一个 _id 的键,值在所处集合中是惟一的 有序的: (下面2个文档彻底不一样) {'title':'xueyou', 'Age':21} {'Age':21, 'title':'xueyou'} 语法: 键不能包含 \0 空字符, 这个字符表示键的结尾 . 和 $ 有特殊含义,一般保留 _ 开头的键一般也要保留,虽然不强制 MongoDb区分类型也区分大小写 文档不能有重复的键
看作是表,多个文档组成集合 语法: 不能包含 \0 空字符 不能使空串 "" 不能包含 $ 不能 system 开头.系统保留 system.users存储着数据库内用户的信息 system.namespaces 存储着全部数据库集合的信息
多个集合组成数据库. 一个MongoDB实例能够承载多个数据库,每一个数据库有独立的权限 语法: 不能空串,所有小写,最多64字节,不能特殊字符 由于数据库名称会变成系统的文件 数据库保留名称: admin - local - config
MongoDb 自带javascript shell; 能够运行任何javascript程序, DOM和浏览器模型不算 启动数据库, 进入bin 运行mongo 启动shell 当前版本 2.6.5 默认链接 test 数据库, 并将这个数据库赋值给全局变量 db
API helo 获取帮助 exit 退出shelljson
db.help() 查看数据库的API db.foo.help() 查看集合的API //获取集合 db.getCollection('集合名') //切换到 foobar数据库,这个时候全局变量 db 就是foobar数据库 switched to db foobar //插入一个文档到集合中, db.集合名.insert db.blog.insert(对象) **查询时shell默认最多显示20个匹配文档** //返回集合里全部文档 db.blog.find() //查看集合里的一个文档 db.blog.findOne() //更新文档 db/blog.update({title:'aa'},文档对象) //从数据库永久删除文档,无参时删除集合内全部文档 db.blog.remove();
mongod.exe 启动数据库,没参数的时候默认数据目录在 c:\data\dbm 使用27017端口, 同时还会启动一个HTTP服务器,监听比端口号大1000的端口 28017端口. 访问: http://localhost:28017 能够获取数据库的管理信息