`
Everyday都不同
  • 浏览: 723465 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

Mongodb的简单操作

阅读更多

Mongodb的简单操作

 

【简介】

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。

Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

 

mongodb是“面向集合”的,数据被分组存储在数据集中,被称为一个集合(Collection)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。

 

【基本概念】

文档:键值对的有序集,如{"age":25, "name":"John", "gender":"female"}--相当于关系型数据库里面表的行(记录,key为列,value为每一列的值)

集合:一组文档的集,--相当于关系型数据库里面的表(table)

数据库:多个文档构成的集合,--相当于关系型数据库的数据库(database)

 

1.对数据库的操作

#查询所有数据库

show dbs;

#查看当前所使用的数据库

db

db.getName()

#切换或创建数据库,当不存在时会自动创建,需要进行创建集合的操作之后,才会在show dbs里面显示出来

use dbname

#当前db连接的地址

db.getMongo()

#当前db的状态

db.stats()

 

2.对集合的操作

#创建集合

db.createCollection(“collName”, {size: 20, capped: 5, max: 100}); //{}里面的参数可选,不加表示不对容量做限制

#得到指定集合

db.getColleciton("collName")

#得到当前db所有集合的名称

db.getCollectionNames()

 

3.对用户的操作

#显示当前db下的所有用户

show users

#添加用户

db.addUser("name");

db.addUser("userName", "pwd123", true);

#删除用户

db.removeUser("userName")

 

4.集合的查询(都是指当前db)

#查询当前db下指定集合的所有文档

db.collName.find()  ---联想:select * from collName;

#查询指定集合对某列去重之后的数据

db.collName.distinct("name") ---联想:select distinct name from collName;

#根据某列指定值查询

db.collName.find({"age": 25}) ---联想:select * from collName where age = 25;

#根据大于或等于查询

db.collName.find({"age": {$gt :20}}) --- age > 20

db.collName.find({"age": {$lt :20}}) --- age < 20

($gte则表示>=, $lte则表示<=)

#根据区间查询

db.collName.find({"age": {$gt :20, $lt:30}})  ---联想:select * from collName where age>20 and age<30;

#模糊匹配查询

db.collName.find({"name", /mongo/})  ---联想:select * from collName where name like '%mongo%';

db.collName.find({"name", /^mongo/}) ---联想:select * from collName where name like 'mongo%';(以……开头)

#查询指定列

db.collName.find({}, {name: 1, age: 1}); ---联想:select name, age from collName;

db.collName.find({age: {$gt: 25}}, {name: 1, age: 1});  ---联想:select name, age from collName where age > 25;(根据条件查询指定列)

#多条件查询

db.collName.find({name: 'Fanfan', age: 40});  ---联想:select * from collName where name = 'Fanfan' and age = 40;

#查询前几条

db.collName.find().limit(10)

#查询10条以后的

db.collName.find().skip(10)

#分页查询第5-10条

db.collName.find().limit(10).skip(5)

#查询结果数

db.collName.find({"age", {$lte:23}}).count()  ---联想:select count(1) from collName where age <= 23

#in, or 

db.collName.find({"user_id":{$in:["12345","123"]}})  ---联想: select * from collName where user_id in("12345", "123")

db.collName.find({$or: [{age: 22}, {age: 25}]});   ---联想:select * from collName where age = 22 or age = 25

($nin表示not in)

#按某列排序(-1表示降序)

db.collName.find().sort({age:1}) ---联想:select * from collName order by age (desc)

 

5.添加

db.collName.save({name: 'Lily', age: 25, gender: "female"});

db.collName.insert({name: 'Lily', age: 25, gender: "female"});

--联想:insert into collName(name, age, gender) values('Lily', 25, 'female');

 

6.修改

db.collName.update({age: 25}, {$set: {name: 'changeName'}}, false, true);   ---联想:update collName set name = ‘changeName’ where age = 25;

db.collName.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true);   ---联想:update collName set age = age + 50 where name = ‘Lisi’;

db.collName.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);   ---联想:update collName set age = age + 50, name = ‘hoho’ where name = ‘Lisi’;

 

7.删除

db.collName.remove({age: 32});  ---联想:delete from collName where age = 32;

 

8.复合操作

db.collName.findAndModify({

    query: {age: {$gte: 25}}, 

    sort: {age: -1}, 

    update: {$set: {name: 'a2'}, $inc: {age: 2}},

    remove: true

});

 

db.runCommand({ findandmodify : "collName", 

    query: {age: {$gte: 25}}, 

    sort: {age: -1}, 

    update: {$set: {name: 'Angela'}, $inc: {age: 2}},

    remove: true

});

 

9.加索引

#加唯一索引

db.collection.ensureIndex({"chatId":1},{unique:true})

#加联合索引

db.collection.ensureIndex({"chatId":1, "pk":1})

 

10.其他

1)print("Hello World")  ---打印

2)for (var i = 0; i < 30; i++) {

... db.collName.save({name: "u_" + i, age: 22 + i, sex: i % 2});

... };---循环添加

3)var cursor = db.collName.find();

> while (cursor.hasNext()) { 

    printjson(cursor.next()); ---把集合的每条document打印成json格式的字符串

}---游标遍历

4)db.collName.find().forEach(printjson);---循环迭代

(find里面也可以加过滤条件)

分享到:
评论

相关推荐

    MongoDB Java Driver 简单操作

    ### MongoDB Java Driver 简单操作详解 #### 一、简介 MongoDB 是一款非常流行的文档型数据库系统,因其灵活性和高性能而被广泛应用于多种场景之中。为了方便开发者使用 Java 进行开发,MongoDB 提供了官方的 Java ...

    spring-data使用mongodbTemplate对MongoDB进行读写操作

    Spring Data MongoDB是一个强大的Java库,它为开发人员提供了一种简单的方式来访问和操作MongoDB数据库。这个库是Spring Data框架的一部分,旨在简化数据访问层的实现,尤其在使用NoSQL数据库如MongoDB时。MongoDB...

    JAVA操作MongoDB简单增删改查

    本教程将详细介绍如何使用Java与MongoDB进行交互,包括基本的增删改查(CRUD)操作。首先,我们需要引入MongoDB的Java驱动程序,这通常通过Maven或Gradle的依赖管理来实现。 1. **添加依赖** 在Maven的`pom.xml`...

    mongodb 简易系统.zip

    3. **CRUD操作**:MongoDB支持创建(CREATE)、读取(READ)、更新(UPDATE)和删除(DELETE)操作,API简单易用。 4. **查询语言**:MongoDB提供了强大的查询语言,可以进行复杂的数据筛选和聚合操作。 5. **分片与复制**:...

    MongoDB基本操作指南

    在MongoDB中,CRUD(创建、读取、更新、删除)操作相对简单,特别是更新操作,通过Modifier可以直接在文档中修改数据,而不需要先读取、修改后再写回。对于批量删除集合的操作,虽然Java驱动没有提供直接方法,但...

    记录MongoDB管理操作

    MongoDB的安全机制相较于传统的关系型数据库来说较为简单。虽然文档开头提到“没有绝对安全的环境”,但这并不意味着MongoDB不具备安全性。以下是一些基本的安全措施: 1. **启用认证**:通过在启动参数中加入`auth...

    MongoDB入门教程 + 架构简析 + java使用MongoDB的简单程序

    在"Java使用MongoDB的简单程序"中,我们将学习如何使用Java驱动程序连接到MongoDB数据库。Java驱动程序提供了一套API,使得开发者可以轻松地进行数据操作。基本步骤包括:创建MongoClient实例以连接到MongoDB服务器...

    mongodb java简单demo

    以上就是使用Java连接MongoDB并进行基本操作的简单示例。在实际应用中,可能还需要处理异常、连接池管理、事务支持等复杂场景。对于更复杂的查询和聚合操作,可以使用`aggregate()`方法配合聚合框架。总之,MongoDB...

    MongoDB数据库简单介绍

    ### MongoDB数据库简单介绍 #### MongoDB概述 MongoDB是一款开源、基于分布式文件存储的NoSQL数据库系统,它使用C++语言编写。与传统的关系型数据库不同,MongoDB采用文档数据模型来存储数据,这种数据模型非常灵活...

    MongoDB若基本操作

    - 驱动程序提供了一套丰富的API,使得在Java应用中集成MongoDB变得简单。 10. **SSH访问** - Secure Shell (SSH) 通常用于远程登录和管理MongoDB服务器。 - 可以设置SSH隧道以安全地访问MongoDB实例。 11. **TE...

    Express +MongoDB 简易后台登录系统.zip

    在本项目"Express +MongoDB 简易后台登录系统.zip"中,我们将会探讨如何使用Express框架和MongoDB数据库构建一个简单的Web后台登录系统。这个系统是针对毕业设计或Web开发实践的需求而设计的,它涉及到Node.js的后端...

    java 连接mongodb的操作

    更新和删除操作同样简单。例如,更新年龄大于25的用户: ```java UpdateResult updateResult = collection.updateMany(gt("age", 25), new Document("$set", new Document("age", 26))); System.out.println(update...

    MongoDB操作手册

    手册提供了一系列监控MongoDB的方法和工具,包括使用SNMP(简单网络管理协议)监控和管理mongod进程,以及旋转日志文件的方法和步骤。这些监控手段可以帮助数据库管理员及时发现系统问题并进行调整。 ### 数据库...

    C# Asp.net中简单操作MongoDB数据库

    本文将深入探讨如何在C# ASP.NET项目中进行MongoDB的基本操作,包括连接数据库、增删改查(CRUD)等关键功能。 首先,我们需要引入MongoDB的C#驱动程序。可以通过NuGet包管理器安装`MongoDB.Driver`库。在Visual ...

    mongodb matlab 开发程序

    例如,你可以创建一个简单的MEX函数来连接到MongoDB服务器,如下所示: ```c #include "mex.h" #include void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { // MongoDB连接参数 ...

    Springboot整合MongoDB进行CRUD操作的两种方式(实例代码详解)

    Springboot整合MongoDB进行CRUD操作的两种方式 在分布式和微服务架构中,Springboot和MongoDB是非常流行的技术栈。 Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库。两者在实际应用中使用...

    MongoDB c#驱动 dll

    MongoDB是一种流行的开源、分布式文档型数据库,...无论是简单的CRUD操作,还是复杂的聚合查询,甚至是分布式事务,都可以轻松应对。在实际项目中,根据需求选择合适的API和设计模式,可以大大提高开发效率和代码质量。

    基于SphinxMySQL和MongoDB的简易论坛

    【基于SphinxMySQL和MongoDB的简易论坛】 在IT领域,构建一个简易论坛涉及到多个关键技术,其中Sphinx、MySQL和MongoDB是实现高效数据管理和检索的重要工具。本论坛设计利用了这些技术的优势,以提供一个功能完备且...

    mongodb-4.0.4_windows

    4. 连接MongoDB shell,验证安装是否成功,可以运行简单的查询和操作。 在使用MongoDB时,开发者和管理员还需要了解如何进行数据备份和恢复、设置复制集以实现高可用性,以及如何进行水平扩展以处理更大的负载。...

Global site tag (gtag.js) - Google Analytics