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的操作都使用JSON风格语法,客户端提交或接收的数据都使用JSON形式来展现。相对于SQL来说,更加直观,容易理解和掌握。Schema-less,支持嵌入子文档:MongoDB是一个Schema-free的文档数据库。一个数据库...
JAVA连接MongoDB,并进行简单的增删改查操作小例子源码,相关博文: http://blog.csdn.net/dream_broken/article/details/36014733
在Windows环境下MongoDB搭建和简单操作,文档描述简单明了。
C# Asp.net中简单操作MongoDB数据库。 包括数据库连接、基本的增加、删除、修改、查询操作,适合初入MongoDB的C#程序员。
本文实例讲述了MongoDB简单操作。分享给大家供大家参考,具体如下: MongoDB 中默认的数据库为 test,连接后尝试以下操作 连接 插入数据:用过json的同学看到这格式相信不会陌生吧! db.person.insert({"name":...
12 Python简单操作MongoDB.mp4 13 Python获取MongoDB的状态信息.mp4 14 MongoDB分片集群之configsvr实战.mp4 15 MongoDB分片集群之router实战.mp4 16 MongoDB分片集群之sharedsvr实战.mp4 17 MongoDB分片集群的使用...
Mongodb的C#操作DEMO、实现简单的增删改查;1.9和2.5的API
简单的java操作mongodb 适合于初学者
C# 简单操作mongodb 适合初学者
1、mongodb java 简单操作 win32 安装步骤 2、mongodb hello word
一个简单的mogodb的操作封装,mongodb 简单的数据库操作,增删改查
php7简单链接mongodb类
使用JAVA操作MongoDB进行简单测试,构建项目工具为Maven,使用的简单案例进行测试,包含增删改查的具体方式以及实现,pom.xml中集成了Spring所需jar包。欢迎下载。
创建数据库:在 MongoDB 中,创建数据库非常简单。当向一个不存在的数据库写入数据时,MongoDB 就会自动创建该数据库。例如,使用 use mydatabase 命令,如果 mydatabase 不存在,MongoDB 就会创建它。 创建集合:...
mongodb数据库可视化操作工具,操作数据库灰常简单!
mongodb的java客户端的简单实例的实现,对文档和固定集合的操作
mongobooster是一款运用MongoDB数据库...mongobooster拥有多种设计工具,在可视化方面的运用非常广泛,不仅是针对MongoDB数据库而已,其连接的方式也非常简单,让您可以轻松访问MongoDB服务器,实现数据可视化操作!
这个工具用的自我感觉还可以,方便操作,可视化,安装流程也很简单