这一篇记录的是MongoDB数据库操作,主要是数据的增删改查,下面分两部分记录,第一部分是在命令行下使用命令完成增删改查,第二部分是使用Java代码来操作MongoDB的增删改查。
一、命令行下的增删改查
要在命令行中操作数据库,首先需要打开命令行,进入MongoDB的安装目录下的bin目录,然后执行mongo,出现下面的界面则表示进入mongoDB的命令行了:
使用show dbs命令可以查看当前有哪些数据库,使用use + 数据库名,可以切换数据库,如果数据库名不存在,则会新建一个数数据库,如下图所示:
要向数据库person中插入数据,需要用类似这样的命令:db.person.insert({"name": "zhangsan", "age": 20}),可以看到insert()函数的参数是类似json数据格式的,这种形式其实是json的扩展,被称作BSON。
插入完数据后,可以使用db.person.count()函数查看当前数据库有几条记录,可以使用db.person.find()查询所有的数据。
要更新数据,需要使用db.person.update()函数,该函数有两个参数,第一个为查询条件,第二个是修改后的数据,上面的代码插入了一条数据,name值为zhangsan,可以使用db.person.update({"name": "zhangsan"}, {"name": "zhangsansan"})来更新数据,更新完之后,使用db.person.find()查看数据是否更新成功。
以上几条命令在控制台中执行的结果如下图:
要删除一个数据库,需要使用use + 数据库名,先切换到要删除的数据库下,然后执行db.dropDatabase(),即可删除数据库。
要显示一个数据库中有哪些集合,可以使用show collections命令,这里的集合,就类似于关系型数据库中的表,一个数据库中可以有多张表,MongoDB中类似的,一个数据库可以有多个集合,上面的person就代表一个集合。
二、java代码中进行增删改查
在
上一篇博文中,已经说明了如何在java代码中连接MongoDB,下面接着说如果创建集合,如何操作数据。
首先还是需要通过MongoClient得到一个数据库对象,然后创建一个集合,如下代码:
// 连接到 mongodb 服务
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// 连接到数据库,这里的test就是数据库名,若不存在,则会创建
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
// 创建集合(类似于关系型数据库中创建表),若重复创建,会报错
mongoDatabase.createCollection("Person");要插入一条记录,使用如下的代码:
MongoCollection<Document> collection = mongoDatabase.getCollection("Person");
Document doc = new Document("name", "zhangsan");
doc.append("age", 20);
doc.append("ID", "111111");
collection.insertOne(doc);这里的Document代表一个文档,即一条记录。如果想插入多个文档,可以使用collection.insertMany()方法,传入的参数是一个List<Document>。
如果要获取一个集合中的所有文档,可以使用如下代码:
FindIterable<Document> findIterable = collection.find();
Iterator<Document> iterator = findIterable.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}要更新一条数据,可以使用collection.replaceOne(),如下代码所示:
MongoCollection<Document> collection = mongoDatabase.getCollection("Person");
Document doc = new Document("name", "zhangsan");
doc.append("age", 20);
doc.append("ID", "111111");
collection.insertOne(doc);
collection.replaceOne(new BasicDBObject("name", "zhangsan"), new Document("name", "zhangsansan"));需要注意的是replaceOne只会更新一条数据,如果想把所有名为zhangsan的条目都更新为zhangsansan,则需要使用findOneAndReplace()方法,并且更新后的这条数据,内容就是第二个参数中的数据,如上面的代码所示,首先添加了一条数据,包含name、age、ID三个字段,但是调用replaceOne()更新了数据,而且第二个参数是
new Document("name", "zhangsansan")则更新后的数据中,只会包含一个name字段。
要删除数据,可以使用collection.deleteOne()或者collection.deleteMany()方法。
参考文章:
http://www.runoob.com/mongodb/mongodb-tutorial.html
转载请注明原文地址: https://ju.6miu.com/read-1303161.html