当先锋百科网

首页 1 2 3 4 5 6 7

目录

一、MongoDB介绍

二、MongoDB的特点

三、MongoDB的优点

四、MongoDB的缺点

五、MongoDB解决了MySQL的“三高”问题

六、MongoDB和MySQL的对比

七、建立连接

八、查看数据库

 九、查看集合

 十、新增

十一、删除

十二、修改

十三、查询


一、MongoDB介绍

2007年10月,MongoDB由10gen团队开发。2009年2月首度推出。基于分布式文件存储的数据库,由c++语言编写。旨在为web应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据哭(nosql)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

二、MongoDB的特点

  1. 不需要跨文档或跨表的事务及复杂的join查询支持;
  2. 敏捷迭代的业务,需求变动频繁,数量模型无法确定;
  3. 存储的数据格式灵活,不固定或属于半结构化数据;
  4. 业务并发访问量大;
  5. TB级以上的海量数据存储,且数据量不断增加;
  6. 需求存储的数据持久化、不丢失;
  7. 99.999%的数据高可用性;
  8. 需要大量的地理位置查询、文本查询。

三、MongoDB的优点

  1. MongoDB提供了一个面向文档存储,操作起来比较简单和容易;
  2. 如果负载增加,它可以在分布在计算机网络中的其他节点,就是所谓的分片;
  3. MongoDB支持编程语言:RUBY,Python,Java,C++,PHP,C#等多种语言;
  4. 可以通过本地或网络创建数据镜像,这使得MongoDB有更强的扩展性。

四、MongoDB的缺点

  1. MongoDB不支持事务
  2. MongoDB不能进行多表联查

五、MongoDB解决了MySQL的“三高”问题

  1. 对数据库高并发写入需求
  2. 对海量数据高效率存储访问需求
  3. 对数据库高扩展和高可用的需求

六、MongoDB和MySQL的对比

MySQLMongoDB
数据库数据库
Collection(集合)
Document(文档)

七、建立连接

在使用Java操作MongoDB时是需要导包的。

MongoClient mc = new MongoClient("localhost",27017);
System.out.println(mc);
mc.close();

但此种方式只适合没有密码的MongoDB的连接。

八、查看数据库

public class ConnTest {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		
		 MongoIterable<String> listDatabaseNames = mc.listDatabaseNames();
		 MongoCursor<String> iterator = listDatabaseNames.iterator();
		 while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}
        mc.close();
    }
}

 九、查看集合

public class ConnTest {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
        MongoDatabase database = mc.getDatabase("myschool");
		System.out.println(database);
		MongoIterable<String> listCollectionNames = database.listCollectionNames();
//		MongoCollection<Document> collection = database.getCollection("student");
		for(String s : listCollectionNames) {
			System.out.println(s);
		}
		
		mc.close();
    }
}

注意:MongoCollection<Document> collection = database.getCollection("student");

没有集合时会创建集合。

例:

public class ConnTest {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase database = mc.getDatabase("myschool");
		MongoCollection<Document> collection = database.getCollection("teacher");
		System.out.println(collection);
		mc.close();
	}

}

 十、新增

package com.my.connection;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class AddTest {

	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase database = mc.getDatabase("myschool");
		MongoCollection<Document> collection = database.getCollection("student");
		
		
		//新增一条数据
//		Document document = new Document();
//		
//		document.put("name", "卓文君");
//		document.put("age", 20);
//		document.put("birthday", new Date());
//		document.put("sex", "女");
//		
//		collection.insertOne(document);
		
		
		//新增多条数据
		Document d1 = new Document();
		d1.put("name", "司马相如");
		d1.put("age", 20);
		d1.put("birthday", new Date());
		d1.put("sex", "男");
		
		Document d2 = new Document();
		d2.put("name", "百里守约");
		d2.put("age", 20);
		d2.put("birthday", new Date());
		d2.put("sex", "男");
		
		Document d3 = new Document();
		d3.put("name", "花木兰");
		d3.put("age", 20);
		d3.put("birthday", new Date());
		d3.put("sex", "女");
		
		List<Document> list = new ArrayList<Document>();
		list.add(d1);
		list.add(d2);
		list.add(d3);
		
		collection.insertMany(list);
		mc.close();
	}

}

十一、删除

package com.my.connection;

import java.nio.file.DirectoryStream.Filter;

import org.bson.Document;
import org.bson.conversions.Bson;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.DeleteResult;

public class DeleteTest {

	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase database = mc.getDatabase("myschool");
		MongoCollection<Document> collection = database.getCollection("student");
		
		Bson exists = Filters.exists("age",false);
//		DeleteResult deleteOne = collection.deleteOne(new Document("name","司马相如"));
//		System.out.println(deleteOne);
//		
//		DeleteResult deleteMany = collection.deleteMany(new Document("name","张三"));
		DeleteResult deleteMany = collection.deleteMany(exists);
		System.out.println(deleteMany);
		
		mc.close();
	}

}

十二、修改

package com.my.connection;

import org.bson.Document;
import org.bson.conversions.Bson;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.UpdateResult;

public class ModifyTest {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase database = mc.getDatabase("myschool");
		MongoCollection<Document> collection = database.getCollection("student");
		
		Bson eq = Filters.eq("name","司马相如");
//		UpdateResult updateOne = collection.updateOne(eq, new Document("$set",new Document("age",30)));		
//		System.out.println(updateOne);
		
//		UpdateResult updateMany = collection.updateMany(eq, new Document("$set",new Document("age",30)));
		
		
//		Bson and = Filters.and(Filters.gte("age", 15),Filters.lte("age", 20));
//		UpdateResult updateMany = collection.updateMany(and, new Document("$set",new Document("sex","保密")));
//		System.out.println(updateMany);
		
		
		UpdateResult updateMany = collection.updateMany(eq, new Document("$set",new Document("age",30)));
		System.out.println(updateMany);
		mc.close();
	}

}

十三、查询

package com.my.connection;

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;

public class FindTest {
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase database = mc.getDatabase("myshool");
		MongoCollection<Document> collection = database.getCollection("student");
		
		FindIterable<Document> find = collection.find(new Document("name","苏小小"));
		MongoCursor<Document> iterator = find.iterator();
		List<Student> list = new ArrayList<Student>();
		while(iterator.hasNext()) {
			Document next = iterator.next();
			Student s = new Student();
			s.setAge(next.getInteger("age"));
			s.setName(next.getString("name"));
			s.setSex(next.getString("sex"));
			
			list.add(s);
		}
		list.forEach(System.out::println);
		
		
		
		
		mc.close();
	}