什么是MongoDB
MongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的产品。它支持的数据结构很是松散,是相似 JSON 的 BSON 格式,所以能够存储比较复杂的数据类型。java
MongoDB特色
MongoDB 最大的特色是他支持的查询语言很是强大,其语法有点相似于面向对象的查询语言,几乎能够实现相似关系数据库单表查询的绝大部分功能,并且还支持对数据创建索引。它是一个面向集合的,模式自由的文档型数据库。正则表达式
MongoDB体系结构
MongoDB 的逻辑结构是一种层次结构。主要由:文档(document)、集合(collection)、数据库(database)这三部分组成的。逻辑结构是面向用户的,用户使用 MongoDB 开发应用程序使用的就是逻辑结构。spring
文档(document)、集合(collection)、数据库(database)的层次结构以下图:
mongodb
代码:查询和文档中能够包括任何JavaScript代码,{“x”:function(){/…/}}shell
window系统MongoDB安装
双击安装,并将 D:\Program Files\MongoDB\Server\3.2\bin
添加到path数据库
md d:\data
mongod --dbpath=d:\data
咱们在启动信息中能够看到,mongoDB的默认端口是27017
若是咱们想改变默认的启动端口,能够经过--port来指定端口在命令提示符输入如下命令便可完成登录 mongo
退出mongodb exit
数组
示例:查询吐槽浏览量大于1000的记录 db.spit.find({visits:{$gt:1000}})
数据结构
包含与不包含
包含使用$in操做符。框架
db.spit.find({userid:{$in:["1013","1014"]}})
不包含使用$nin操做符.云计算
db.spit.find({userid:{$nin:["1013","1014"]}})
条件链接
咱们若是须要查询同时知足两个以上条件,须要使用$and操做符将条件进行关联。(至关于SQL的and)
$and:[ { },{ },{ } ]
示例:查询吐槽集合中visits大于等于1000 而且小于2000的文档
db.spit.find({$and:[ {visits:{$gte:1000}} ,{visits:{$lt:2000} }]})
若是两个以上条件之间是或者的关系,咱们使用 操做符进行关联,与前面and的使用方式相同
$or:[ { },{ },{ } ]
示例:查询吐槽集合中userid为1013,或者浏览量小于2000的文档记录
db.spit.find({$or:[ {userid:"1013"} ,{visits:{$lt:2000} }]})
列值增加
若是咱们想实现对某列值在原有值的基础上进行增长或减小,可使用$inc运算符来实现
db.spit.update({_id:"2"},{$inc:{visits:NumberInt(1)}} )
mongodb-driver
mongodb-driver是mongo官方推出的java链接mongoDB的驱动包,至关于JDBC驱动。咱们经过一个入门的案例来了解mongodb-driver的基本使用
代码实现
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.11.1</version> </dependency>
public class MongoDemo1 { public static void main(String[] args) { MongoClient client=new MongoClient("192.168.58.128");//建立链接 MongoDatabase spitdb = client.getDatabase("spitdb");//打开数据库 MongoCollection<Document> spit = spitdb.getCollection("spit");// BasicDBObject bson=new BasicDBObject("userid","1013");// 构建查询 FindIterable<Document> documents = spit.find(bson);//查询记录获取结 for(Document document:documents){ // System.out.println("内容:"+ document.getString("content")); System.out.println("用户ID:"+document.getString("userid")); System.out.println("浏览量:"+document.getInteger("visits")); } client.close();//关闭链接 } }
SpringData家族成员之一,用于操做MongoDb的持久层框架,封装了底层的mongodbdriver。
有序列表项 三