MongoDB数据操作

    xiaoxiao2025-10-14  2

    这一篇记录的是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
    最新回复(0)