mongodb的安装和使用
1 下载
curl http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.4.6.tgz >mongodb.tgz
下载解压后,将bin目录配置到环境变量。
并执行source 环境配置文件 使配置文件生效
? ~ source ~/.zshrc
? ~
2 启动mongodb需要设置数据库,默认使以/data /db目录为存放数据,所以需要手动创建。
mongod -dbpath=/data/db
默认端口为:27017
4 shell连接到mongodb数据库
?? ~ mongo
MongoDB shell version: 3.0.1
connecting to: test
> db
test
> db.test.insert({"a":123});
WriteResult({ "nInserted" : 1 })
> db.test.find();
{ "_id" : ObjectId("550e7d92bcff8b45f002d82d"), "a" : 1 }
{ "_id" : ObjectId("550e7da4bcff8b45f002d82e"), "a" : 2, "b" : 2 }
{ "_id" : ObjectId("550e81b2f07390e2d4bfe58e"), "a" : 123 }
>
5 java客户端连接mongodb数据库
下载地址: http://central.maven.org/maven2/org/mongodb/mongo-java-driver/3.0.0-rc0/
下载后加载到classpath即可
package com.mongo;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
public class Test {
private static final Mongo m = new MongoClient("localhost", 27017);
static{
// insert();
}
public static void main(String[] args) {
DB db = m.getDB("test");
DBCollection coll = db.getCollection("blog");
BasicDBObject bd = new BasicDBObject("info.x", 99);
DBCursor data = coll.find(bd);
while(data.hasNext()){
DBObject object = data.next();
System.out.println(object);
}
System.out.println(data.count());
}
public static void insert() {
DB db = m.getDB("test");
DBCollection coll = db.getCollection("blog");
BasicDBObject doc;
for(int i=0;i<100;i++){
doc =
new BasicDBObject();
doc.put("name", "MongoDB"+i);
doc.put("type", "database"+i);
doc.put("count", 1);
BasicDBObject info = new BasicDBObject();
info.put("x", i);
info.put("y", i+1);
doc.put("info", info);
coll.insert(doc);
}
}
}
6 mongo使用场合
mongodb的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。mongo适用于以下场景:
a.网站数据:mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
b.缓存:由于性能很高,mongo也适合作为信息基础设施的缓存层。在系统重启之后,由mongo搭建的持久化缓存可以避免下层的数据源过载。
c.大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。
d.高伸缩性的场景:mongo非常适合由数十或者数百台服务器组成的数据库。
e.用于对象及JSON数据的存储:mongo的BSON数据格式非常适合文档格式化的存储及查询。
不适合的场景:
a.高度事物性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
b.传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
c.需要SQL的问题。
最后:mongodb就是一个文档式nosql数据库,具体操作接口可看官方文档。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。