MongoDB 从0开始
MongoDB
https://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/
在Mac上安装
brew update
brew install mongodb
运行
mkdir -p /data/db
mongod
这里是默认的运行路径 更多参数可以看这里https://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/
连接数据库
之前只是启动了数据库的服务 下面通过shell命令来连接数据库
mongo
列出数据库
> show dbs
local 0.078GB
test 0.078GB
切换数据库(同时可以新建数据库)
use databasename
(这个时候表示在使用这个数据库 但是你通过show dbs看不到它 只有向一个数据库中插入过了数据 show dbs 才能看到它)
db.users.save({username:'hehe'})
向数据库中的users 这个collection插入了一条数据
collection 比较接近于表的概念
之后会返回刚才操作的结果
WriteResult({ "nInserted" : 1 })
通过show collections 可以看到所有的表
> show collections
system.indexes
users
删除
删除collection中所有数据
db.restaurants.remove( { } )
删除一个collection
db.restaurants.drop()
删除指定数据
db.recordsTest.remove({'periodInfo.loading.elapsed':{$gt:50000 } })
查找
> db.users.find()
{ "_id" : ObjectId("562db21bf928090dc1a9a24f"), "username" : "hehe" }
修改
db.recordsTest.update({day:'2016-1-1'},{$set:{day:"2015-12-08"}},{multi:true})
和Node一起用
新的API在建立db的时候和以前的API不同
(旧API仍然可以用)
比如很多书上OR博文中的例子都是这么写的
var mongodb = require('mongodb');
var db = new Db('your-db', new Server("127.0.0.1", Connection.DEFAULT_PORT, { auto_reconnect: true }));
db.open(function(error, databaseConnection) {
if (error) throw new Error(error);
connectionInstance = databaseConnection;
databaseConnection.collection('collectionName', function(error, collection) {
collection.find().toArray(function(error, results) {
//blah blah
});
});
});
这里的databaseConnection 就是我们需要的数据库实例
怎么样才能让连接db这个部分更加通用呢
我们需要一个全局的变量来存储这个connection
建立连接 connection.js
var connectionInstance;
module.exports = function(callback) {
//if already we have a connection, don't connect to database again
if (connectionInstance) {
callback(connectionInstance);
return;
}
var db = new Db('your-db', new Server("127.0.0.1", Connection.DEFAULT_PORT, { auto_reconnect: true }));
db.open(function(error, databaseConnection) {
if (error) throw new Error(error);
connectionInstance = databaseConnection;
callback(databaseConnection);
});
};
操作数据库
var mongoDbConnection = require('./lib/connection.js');
exports.index = function(req, res, next) {
mongoDbConnection(function(databaseConnection) {
databaseConnection.collection('collectionName', function(error, collection) {
collection.find().toArray(function(error, results) {
//blah blah
});
});
});
};
新API
//client 就是 db
var client, collections = {};
module.exports.get = function(name, callback) {
if (client) {
getCollection(name, callback);
} else {
MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
if (!err) {
client = db; //db
client.on('close', function() {
client = null;
collections = {};
});
getCollection(name, callback);
} else {
//error connecting...
console.log('db open failed')
}
});
}
}
MongoDB 从0开始的更多相关文章
- CentOS7 安装MongoDB 3.0服务器
1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...
- MongoDB 3.0.6 安装 增删改查
下载 安装包MSI http://yunpan.cn/cmhHdTPkXZRM2 访问密码 9b6c 上边提供的是 MongoDB 3.0.6 64Bit 的安装包 安装 如果不想直接安装在C盘.. ...
- 新年新技术:MongoDB 3.0
前一篇介绍了HTTP/2,这一篇简单介绍下3月3号发布的MongoDB 3.0. What’s new in MongoDB 3.0? 新的存储引擎WiredTiger MongoDB 3.0的存储引 ...
- MongoDB 3.0 新特性【转】
本文来自:http://www.open-open.com/lib/view/open1427078982824.html#_label3 更多信息见官网: http://docs.mongodb.o ...
- MongoDB 3.0 用户创建
摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...
- MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务
目录(?)[-] 1下载安装 2MongoDB CRUD 1创建数据 2更新数据 3删除 4查询 5更多方法 3MongoDB可视化工具 4总结 本文原文连接: http://blog.csdn. ...
- CentOS7 安装MongoDB 3.0服务
1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...
- [译]MongoDB 3.0发布说明
原文来自:http://docs.mongodb.org/manual/release-notes/3.0/ 2015年3月3日 MongoDB 3.0现已可供使用.关键新特性包括支持WiredTig ...
- Mongodb 3.0 创建用户
MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 创建第一个用户(该用户需要有grant权限,即:账号管理的授权权限) ...
- (转)MongoDB 3.0 WT引擎参考配置文件
mongodb 3.0 改变很多,从2.6版本升级到3.0要关注的细节很多,如权限等等.3.0在数据存储引擎上更换成了wiredTiger,在数据压缩方面很有效,解决大数据量问题的情况下,磁盘不够用的 ...
随机推荐
- Python学习笔记(三)Python的list和tuple
list list类似其他语言中的数组,是一种有序的集合,可以随时添加和删除其中的元素. 使用len()函数可以获得list元素的个数. list的索引从0开始,当超出范围时会报IndexError错 ...
- vs2005 测试 lua环境
(1)添加文件核路径 (2)库文件路径 (3)main.cpp #include <stdio.h>#include <string.h> extern "C&quo ...
- android应用开发全程实录-你有多熟悉listview
http://blog.csdn.net/notice520/article/details/7040962 今天给大家带来<android应用开发全程实录>中关于listview和ada ...
- 各种HelloWorld
http://blog.csdn.net/whxaing2011/article/details/20736759 ES总结: http://www.cnblogs.com/sunxucool/p/3 ...
- WF编译报错
最近在研究WF的时候,遇到了一个未知的错误,错误信息时这样的 错误 102 扩展“Microsoft.Activities.Build.Validation.ValidationBuildExtens ...
- 简单RTP发送类c++实现
我之前编译了jrtplib 3.9.1,并且在项目中使用,结果发现在用这个库时,程序体积有增加了300多K,感觉实在是有点笨重,我无法就是用来发送rtp包而已.想想还是自己重新实现一个简单的类用用拉倒 ...
- RHEL安装时加载第三方raid驱动
IBM x3650 M3服务器做完RAID之后,不能直接的安装Linux系统,会报出没有硬盘的错误 过程如下: 1.到IBM的官方网站下载device drive 下载后的为:ibm_dd_sraid ...
- java双线程调用同一个对象+锁
两个线程(Thread)调用同一个对象(使用Runnable接口的对象ThreadJob) 误区:下一个线程会从上一个线程结束的地方开始 正解:如 public domd implements Run ...
- 普林斯顿大学算法课 Algorithm Part I Week 3 排序稳定性 Stability
稳定性(Stability):先按性质A排序,再按性质B排序,性质B相同的那些项是否仍然是按性质A排序的? 一个稳定的排序,相同值的元素应仍保持相对顺序(relative order) 稳定的算法:插 ...
- 全国计算机等级考试二级教程-C语言程序设计_第10章_字符串
字符型指针数组 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> //参数中,int a ...