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一起用

http://mongodb.github.io/node-mongodb-native/2.0/api/

新的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这个部分更加通用呢

http://www.oschina.net/question/12_104851

我们需要一个全局的变量来存储这个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

http://mongodb.github.io/node-mongodb-native/2.0/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开始的更多相关文章

  1. CentOS7 安装MongoDB 3.0服务器

    1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...

  2. MongoDB 3.0.6 安装 增删改查

    下载 安装包MSI http://yunpan.cn/cmhHdTPkXZRM2  访问密码 9b6c 上边提供的是 MongoDB 3.0.6 64Bit 的安装包 安装 如果不想直接安装在C盘.. ...

  3. 新年新技术:MongoDB 3.0

    前一篇介绍了HTTP/2,这一篇简单介绍下3月3号发布的MongoDB 3.0. What’s new in MongoDB 3.0? 新的存储引擎WiredTiger MongoDB 3.0的存储引 ...

  4. MongoDB 3.0 新特性【转】

    本文来自:http://www.open-open.com/lib/view/open1427078982824.html#_label3 更多信息见官网: http://docs.mongodb.o ...

  5. MongoDB 3.0 用户创建

    摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...

  6. MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务

    目录(?)[-] 1下载安装 2MongoDB CRUD 1创建数据 2更新数据 3删除 4查询 5更多方法 3MongoDB可视化工具 4总结   本文原文连接: http://blog.csdn. ...

  7. CentOS7 安装MongoDB 3.0服务

    1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...

  8. [译]MongoDB 3.0发布说明

    原文来自:http://docs.mongodb.org/manual/release-notes/3.0/ 2015年3月3日 MongoDB 3.0现已可供使用.关键新特性包括支持WiredTig ...

  9. Mongodb 3.0 创建用户

    MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 创建第一个用户(该用户需要有grant权限,即:账号管理的授权权限) ...

  10. (转)MongoDB 3.0 WT引擎参考配置文件

    mongodb 3.0 改变很多,从2.6版本升级到3.0要关注的细节很多,如权限等等.3.0在数据存储引擎上更换成了wiredTiger,在数据压缩方面很有效,解决大数据量问题的情况下,磁盘不够用的 ...

随机推荐

  1. Python学习笔记(三)Python的list和tuple

    list list类似其他语言中的数组,是一种有序的集合,可以随时添加和删除其中的元素. 使用len()函数可以获得list元素的个数. list的索引从0开始,当超出范围时会报IndexError错 ...

  2. vs2005 测试 lua环境

    (1)添加文件核路径 (2)库文件路径 (3)main.cpp #include <stdio.h>#include <string.h> extern "C&quo ...

  3. android应用开发全程实录-你有多熟悉listview

    http://blog.csdn.net/notice520/article/details/7040962 今天给大家带来<android应用开发全程实录>中关于listview和ada ...

  4. 各种HelloWorld

    http://blog.csdn.net/whxaing2011/article/details/20736759 ES总结: http://www.cnblogs.com/sunxucool/p/3 ...

  5. WF编译报错

    最近在研究WF的时候,遇到了一个未知的错误,错误信息时这样的 错误 102 扩展“Microsoft.Activities.Build.Validation.ValidationBuildExtens ...

  6. 简单RTP发送类c++实现

    我之前编译了jrtplib 3.9.1,并且在项目中使用,结果发现在用这个库时,程序体积有增加了300多K,感觉实在是有点笨重,我无法就是用来发送rtp包而已.想想还是自己重新实现一个简单的类用用拉倒 ...

  7. RHEL安装时加载第三方raid驱动

    IBM x3650 M3服务器做完RAID之后,不能直接的安装Linux系统,会报出没有硬盘的错误 过程如下: 1.到IBM的官方网站下载device drive 下载后的为:ibm_dd_sraid ...

  8. java双线程调用同一个对象+锁

    两个线程(Thread)调用同一个对象(使用Runnable接口的对象ThreadJob) 误区:下一个线程会从上一个线程结束的地方开始 正解:如 public domd implements Run ...

  9. 普林斯顿大学算法课 Algorithm Part I Week 3 排序稳定性 Stability

    稳定性(Stability):先按性质A排序,再按性质B排序,性质B相同的那些项是否仍然是按性质A排序的? 一个稳定的排序,相同值的元素应仍保持相对顺序(relative order) 稳定的算法:插 ...

  10. 全国计算机等级考试二级教程-C语言程序设计_第10章_字符串

    字符型指针数组 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> //参数中,int a ...