一、在linux服务器中安装mongodb

1.首先你要有一台安装有linux系统的主机

2.从mongoDB官网下载安装包:http://www.mongodb.org/downloads

3.将下载的.tgz安装包上传到指定的目录下,我长传在/usr/local/mongod/目录下

4.linux创建目录已经上传.tgz文件命令如下:

pwd // 查看当前目录

cd /     // 进入根目录

cd /usr/local/    // 进入usr/local目录下

mkdir mongod  //创建mongod文件夹

cd /usr/local/mongod/   // 进入mongod文件目录下

rz -e  // 上传文件命令

tar -zxvf 上传的安装文件名

mkdir -p /data/db  // 创建mongodb默认启动数据库路径

5.进入安装mongodb安装文件解压后的文件bin目录下,输入一下命令:

./ mongod  // 启动服务

ps -ef|grep mongod  // 查看启动的mongodb进程

./ mongo  // 启动连接

出现如下提示:说明启动成功!

6.mongodb常用命令

mongodb数据存储是一种类json格式的数据存储,Bson类型,存储内容的_id字段的内容是mongodb本身算法获取是唯一 。

>use datebase // 使用指定数据库

>db.help()  // 帮助

>db.stats()

>db.version() // 查看数据库版本

>db.collection.insert({username:'ablejava',password:123}) // 插入数据

>db.collection.find();  db.colloection.find({name:'iphone'})// 查询数据

>db.collection.findOne({name:'iphone'});// 返回满足条件集合的第一条。

7.范围条件查询

关键字: $gt  $lt  $gte  $lte

mysql关键字:>   <   >=   <=

db.goods.find({price:{"$gt":1005}})  // 查询价格大于1500的商品

db.goods.find({price:{'$gt':1000},weight:{'$lt':50}})  // 价格大于1000并且重量小于50的

db.goods.find({color:'red'}) // 数组元素值有val即可(存在一个元素),查询颜色有红色记录条数,满足一个元素即可

db.goods.find({type:{'$all':[v1,v2]}}) //查询数组元素值,同时存在v1和v2即可(v1,v2顺序不做要求)(存在多个元素)

db.goods.find('$or':[{price:2000},{number:{'$lt':100}}]); // 价格大于2000或者number小于200的

限制查询:

db.表.find({条件},{字段:1/0,字段:1/0})

1:查询此字段

0:排除此字段

db.goods.find({price:2000},{name:1,_id:0}) // 查询价格大于2000并且只显示name字段

就是要输出就全部输出,要不输出就全部不输出。_id除外,可以随意设置0,1.

要其中一个字段设置为1,其中一个字段设置为0会报错。

db.goods.update({name:'xiaomi5'},{'$set':{name:'xiaomi5s'}})

没有$set,没有修改的字段就删除了,除id

db.goods.remove({name:'小米'}) // 删除一条记录

db.goods.update({name:'huawei'},{'$unset':{name:0}}) // 删除记录

二、mongodb在java中的使用

1.首先下载mongodb所需要的jar包,新建一个项目将所需要的jar添加到项目中

2.连接数据库,创建集合,获取集合

package com.my.test;

import java.util.ArrayList;
import java.util.List; import org.bson.Document; import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters; public class Test {
public static void main(String[] args) {
MongoClient mongoClient = null;
try{
// 连接到 mongodb 服务
mongoClient = new MongoClient( "192.168.9.235" , 27017 );
// 连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
System.out.println("连接数据库成功!");
// 创建集合
mongoDatabase.createCollection("col");
System.out.println("创建集合成功!");
// 获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection("col");
System.out.println("获取集合成功!");
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
} finally {
if (mongoClient != null) {
mongoClient.close();
}
}
}
}

如果连接mongodb数据库需要用户名和密码,使用下边的连接方式:

package com.my.test;

import java.util.ArrayList;
import java.util.List; import org.bson.Document; import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters; public class Test {
public static void main(String[] args){
try {
//连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址
//ServerAddress()两个参数分别为 服务器地址 和 端口
ServerAddress serverAddress = new ServerAddress("localhost",27017);
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress); //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential); //通过连接认证获取MongoDB连接
MongoClient mongoClient = new MongoClient(addrs,credentials); //连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");
System.out.println("Connect to database successfully");
} catch (Exception e) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
} }

3.插入文档,删除文档,查询文档,修改文档

package com.my.test;

import java.util.ArrayList;
import java.util.List; import org.bson.Document; import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters; public class Test {
public static void main(String[] args) {
MongoClient mongoClient = null;
try{
// 连接到 mongodb 服务
mongoClient = new MongoClient( "192.168.9.235" , 27017 );
// 连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");
System.out.println("Connect to database successfully");
mongoDatabase.createCollection("col2");
System.out.println("创建集合成功!");
MongoCollection<Document> collection = mongoDatabase.getCollection("test2");
System.out.println("获取集合成功!");
//插入文档
/**
* 1. 创建文档 org.bson.Document 参数为key-value的格式
* 2. 创建文档集合List<Document>
* 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 mongoCollection.insertOne(Document)
* */
Document document = new Document();
document.append("description", "mongodb");
document.append("likes", 100);
document.append("by", "Fly");
Document document2 = new Document();
document2.append("description", "redis");
document2.append("likes", 100);
document2.append("by", "Fly"); List<Document> documents = new ArrayList<Document>();
documents.add(document);
documents.add(document2);
collection.insertMany(documents);
System.out.println("文档插入成功");
//检索所有文档
/**
* 1. 获取迭代器FindIterable<Document>
* 2. 获取游标MongoCursor<Document>
* 3. 通过游标遍历检索出的文档集合
* */
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
while(mongoCursor.hasNext()){
System.out.println(mongoCursor.next());
} //更新文档 将文档中likes=100的文档修改为likes=200
collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));
//检索查看结果
FindIterable<Document> findIterableUpdate = collection.find();
MongoCursor<Document> mongoCursorUpdate = findIterableUpdate.iterator();
while(mongoCursorUpdate.hasNext()){
System.out.println(mongoCursorUpdate.next());
} //删除符合条件的第一个文档
collection.deleteOne(Filters.eq("likes", 200));
//删除所有符合条件的文档
collection.deleteMany (Filters.eq("likes", 200));
//检索查看结果
FindIterable<Document> findIterableDel = collection.find();
MongoCursor<Document> mongoCursorDel = findIterableDel.iterator();
while(mongoCursorDel.hasNext()){
System.out.println(mongoCursorDel.next());
}
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
} finally {
if (mongoClient != null) {
mongoClient.close();
}
}

源码下载,客户端工具下载,使用手册下载:https://github.com/ablejava/mongodb

mongodb安装与使用的更多相关文章

  1. mongodb安装&简单使用

    转自Mac下使用brew安装mongodb,按着步骤已成功安装. brew常用命令 1.更新brew本身 brew update 2.使用brew安装软件 1 brew install soft_na ...

  2. win7 64位下 mongodb安装及命令运行

    有网友老催我把框架加上mongodb的支持,于是偶尔抽空看了看相关的文章. 今天有缘,就把mongodb安装了一下,中间遇到了小小的问题,So,把整个过程记录一下: 1:先上官网:http://www ...

  3. MongoDB配置服务--MongoDB安装成为windows服务

    MongoDB安装成为windows服务 1.打开命令提示符(最好以管理员的身份打开),然后输入: mongod --logpath "D:\MongoDB\data\log\logs.tx ...

  4. [MongoDB]安装MongoDB

    汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...

  5. MongoDB学习:(一)MongoDB安装

    MongoDB学习:(一)MongoDB安装 MongoDB介绍:     直接百科了: MongoDB安装: 1:下载安装: MongoDB安装:https://www.mongodb.com/do ...

  6. MongoDB 安装(Window/Linux)

    MongoDB安装在Windows上 在 Windows上,首先要安装 MongoDB下载最新发布的MongoDB: http://www.mongodb.org/downloads 确保得到正确的版 ...

  7. MongoDB安装与启动

    我本人电脑是win8系统64位,下载64位的zip包,下载完成后解压缩到D:\MongoDB目录 创建数据库目录D:\MongoDB\data,接下来打开命令行窗口,切换到D:\MongoDB\bin ...

  8. MongoDB安装部署(一)

    前言 MongoDB是一个由C++语言编写的基于分布式文件存储的数据库,是当前NoSQL数据库中比较热门的一种,旨在为Web应用提供可扩展的高性能数据存储解决方案. MongoDB 简介 MongoD ...

  9. windows下mongodb安装与使用整理

    一.首先安装mongodb 1.下载地址:http://www.mongodb.org/downloads 2.解压缩到自己想要安装的目录,比如d:\mongodb 3.创建文件夹d:\mongodb ...

  10. mongodb 安装与启动简单使用

    环境:mac 10.11.6 一.安装步骤:按照官网的教程: 1.打开终端 安装或升级brew: brew update 2.安装mongoDB二进制文件: brew install mongodb ...

随机推荐

  1. Openvswitch原理与代码分析(4):网络包的处理过程

      在上一节提到,Openvswitch的内核模块openvswitch.ko会在网卡上注册一个函数netdev_frame_hook,每当有网络包到达网卡的时候,这个函数就会被调用.   stati ...

  2. LoadRunner 12 发布,主推云

    LoadRunner 12 发布,主推云 http://blog.csdn.net/testing_is_believing/article/details/22572341

  3. Code片段 : .properties属性文件操作工具类 & JSON工具类

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “贵专” — 泥瓦匠 一.java.util.Properties API & 案例 j ...

  4. Swift 程序流程控制

    Swift采用类同c语言的流程控制语句,if, for, for-in,  while,  do-while , switch, break, continue .Swift语言的Switch语句自动 ...

  5. [转]使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)

    在android4.0以后的sdk里那个脚本就失效了,主要是因为 apkbuilder这个程序不见了: 人家sdk升级,我们的脚本也要跟上趟,修改一下喽. 上网一查,大家的文章还停留在我去年的脚本程度 ...

  6. 年底奉献-QT编写视频监管平台(开源)

    忙忙碌碌又是一年,算算自己毕业四年半,一直在现在这家公司做研发外加总经理助理,研发起初用的VB.NET,而后全面转为C#,最后又全面转为QT,都是由于项目需要,算下来自己搞QT编程也已经四年了,201 ...

  7. Cocoa Drawing Guide学习part1——基础和图形上下文 (转)

    原文:http://noark9.github.io/2013/12/28/cocoa-drawing-guide-study-part-1/ 简介 cocoa drawing由AppKit提供并且也 ...

  8. MYSQL开发性能研究——批量插入的优化措施

    一.我们遇到了什么问题 在标准SQL里面,我们通常会写下如下的SQL insert语句. INSERT INTO TBL_TEST (id) VALUES(1);   很显然,在MYSQL中,这样的方 ...

  9. jQuery+Superfish制作下拉菜单

    superfish制作下拉菜单真的很方便而好很好用,而且还可以通过Superfish提供的参数来控制下拉菜单的不同效果,而且他没有层级限制,换句话说可以通过Superfish来写你想要的层级菜单. 官 ...

  10. MyBatis知多少(13)MyBatis如何解决数据库的常见问题

    在现代软件项目中数据库通常被认为是遗留组件.它们一直以来都被认为难以使用,不论是出于技术的还是非技术的原因.大多数软件开发人员宁可从头开始完完全全地重建一个数据库. 如果数据库是遗留下来的,相信一些开 ...