MongoDB之数据库命令操作(二)

现在详细学习一下mongodb的数据库操作。

查询语句

db.xxx(集合name).find() # 查询
db.xxx(集合name).findOne() # 只返回一个
db.xxx(集合name).findOne().pretty() # 返回结果格式化

# 比较运算符
等于,默认是等于判断,没有运算符,如:db.xxx(集合name).find({name:"xiao"})
小于$lt,如:db.xxx(集合name).find({age:{$lt:30}})
小于或等于$lte,如:db.xxx(集合name).find({age:{$lte:30}})
大于$gt,如:db.xxx(集合name).find({age:{$gt:30}})
大于或等于$gte,如:db.xxx(集合name).find({age:{$gte:30}})
不等于$ne,如:db.xxx(集合name).find({age:{$ne:30}})

# 逻辑运算符,即多条件查询
db.xxx(集合name).find({age:{$ne:30}, name:"xiaoming"}) # 默认逻辑与
db.xxx(集合name).find({$or:[{age:{$ne:30}, name:"xiaoming"}]}) # 默认逻辑或

# 范围查询
db.xxx(集合name).find({age:{$in:[18,30]}}) # 在某个范围
db.xxx(集合name).find({age:{$nin:[18,30]}}) # 不在某个范围

# 正则$regex
db.xxx(集合name).find({name:{$regex:"^x"}})

# 函数查询$where,使用this代表本集合
db.xxx(集合name).find({$where:function(){return this.age < 10}})

# 限制返回数量
db.xxx(集合name).find().limit(3)
# 查询偏移
db.xxx(集合name).find().skip(3) # 从第4条开始返回

# 循环
for(i=0;i<15;i++){db.xxx(集合name).insert({_id:i*2})}

# 查询返回一些字段,需要返回设置1,不需要设置0
db.xxx(集合name).find({},{name:1,age:0})

# 排序sort(),1位升序,-1为降序
db.xxx(集合name).find().sort({name:-1})
# 返回个数count()
db.xxx(集合name).count({name:"xiaoming"})
# 去重
db.xxx(集合name).distinct("name",{})

聚合函数

  • 语法:db.集合名称.aggregate({管道:{表达式}})
# 管道
$group:将集合中的文档分组,可用于统计结果
$match:过滤数据,只输出符合条件的文档
$project:修改输入文档的结构,如重命名、增加、删除字段、创建计算结果
$sort:将输入文档排序后输出
$limit:限制聚合管道返回的文档数
$skip:跳过指定数量的文档,并返回余下的文档
$unwind:将数组类型的字段进行拆分

# 表达式
$sum:计算总和,$sum:1同count表示计数
$avg:计算平均值
$min:获取最小值
$max:获取最大值
$push:在结果文档中插入值到一个数组中
$first:根据资源文档的排序获取第一个文档数据
$last:根据资源文档的排序获取最后一个文档数据

索引

  • 1表示升序,-1表示降序
  • 语法结构:db.COLLECTION_NAME.ensureIndex(keys[,options])
keys,要建立索引的参数列表。如:{KEY:1},其中key表示字段名,1表示升序排序,也可使用使用数字-1降序。
options,可选参数,表示建立索引的设置。可选值如下:

background,Boolean,在后台建立索引,以便建立索引时不阻止其他数据库活动。默认值 false。
unique,Boolean,创建唯一索引。默认值 false。
name,String,指定索引的名称。如果未指定,MongoDB会生成一个索引字段的名称和排序顺序串联。
dropDups,Boolean,创建唯一索引时,如果出现重复删除后续出现的相同索引,只保留第一个。
sparse,Boolean,对文档中不存在的字段数据不启用索引。默认值是 false。
v,index version,索引的版本号。
weights,document,索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索引字段的得分权重。
# 创建普通索引
db.集合.ensureIndex({属性:1})

# 创建唯一索引,实现唯一约束的功能
db.集合.ensureIndex({"name":1},{"unique":true})

# 创建联合索引
db.集合.ensureIndex({name:1,age:1})

#查看集合所有索引
db.集合.getIndexes()

# 删除索引
db.集合.dropIndex(‘索引名称‘)
db.集合.dropIndexs() # 删除集合所有的索引

原文地址:https://www.cnblogs.com/cwp-bg/p/9391629.html

时间: 2024-07-29 21:52:50

MongoDB之数据库命令操作(二)的相关文章

每篇半小时1天入门MongoDB——4.MongoDB索引介绍及数据库命令操作

准备工作 继续连接到mongo C:\Users\zouqi>mongo MongoDB shell version: 3.0.7 connecting to: test 查看数据库和集合 > show dbs demo 0.078GB local 0.078GB myDatabase 0.078GB myTest 0.078GB > use myTest switched to db myTest > show collections persons system.indexes

mongodb数据库添加权限及简单数据库命令操作笔记

加固mongodb建议:修改数据库默认端口,添加数据库访问权限: 启动数据库(裸奔):C:\mongodb\bin>mongod --dbpath C:\MongoDB\data(同时用--dbpath指定数据存放地点为"db"文件夹.) 数据库管理:mongo.exe 新版的MongoDB已经不支持addUser方法了,改成createUser了. 启动数据库的注意事项: 指定端口启动数据库(不需要认证):E:\mongodb\bin>mongod --dbpath E:

MongoDB常用数据库命令第二集

=======================基础命令======================= mongo 进入数据库操作界面db 查看当前使用的数据库show dbs 查看当前已经被创建出来的数据库 //local 0.000GB 当数据库内容为空时 是不展示出来的,有内容时才会展示出来 use xxx 切换到指定名字的数据库(即使数据库不存在 也可以切换成功,但是切换成功后,数据库并不会立即被创建出来 只是暂时挂名 - 惰性机制) db.dropDatabase() 删除当前数据库 (

MongoDB常用数据库命令第一集

1.查询操作(1)Help查看命令提示helpdb.help()db.test.help()db.test.find().help()(2)创建/切换数据库use music(3)查询数据库show dbs(4)查看当前使用的数据库db/db.getName()(5)显示当前DB状态db.stats()(6)查看当前DB版本db.version()(7)查看当前DB的链接机器地址db.getMongo()(8)删除数据库db.dropDatabase() 2.集合操作:(1)创建一个聚集集合db

Windows系统CMD窗口下,MySQL建库、还原数据库命令操作示例

前提条件 已安装Java JDK(以1.8版本为例) 已安装MySQL(以5.7.20版本为例),并配置好环境变量 联接MySQL 1. 打开命令提示符窗口(cmd窗口),可以使用WIN+R键,打开运行窗口,输入cmd来打开命令提示符窗口 2. 使用下面的命令来进入MySQL(以使用root用户联接localhost)为例: mysql -hlocalhost -uroot -p 回车后,会提示输入密码,如下图: 输入密码后,回车键,如果正确,会出现欢迎信息,如下图: 展示数据库列表 使用下面的

Mongodb数据库命令端常用操作

查询操作 Mongodb-SpringMvc下Query数据库操作SQL http://blog.csdn.net/xiaohulunb/article/details/27828381 1.查询所有 > db.foo.find() { "_id" : ObjectId("5389aa1df06b88aaa313746a"), "name" : "yiwa", "age" : 25, "us

MongoDB学习笔记-数据库命令

概念 数据库命令(database command)是一种非常特殊类型的查询.文档的创建.更新.删除及查询都属于数据库命令的范畴,它还包含管理性的任务(比如关闭服务器和克隆数据库).统计数据及执行聚合操作等. runCommand函数 通常,只使用shell提供的函数就可以了,但是了解它们底层的命令是很有帮助的.尤其是当使用就版本shell连接到新版本的数据库上时,这个shell可能不支持新版数据库的一些命令,这时就不得不使用“数据库命令”的runCommand函数.使用方式:db.runCom

MongoDB学习笔记-06 数据库命令、固定集合、GridFS、javascript脚本

介绍MongoDB支持的一些高级功能: 数据库命令 固定大小的集合 GridFS存储大文件 MongoDB对服务端JavaScript的支持 数据库命令 命令的原理 MongoDB中的命令其实是作为一种特殊类型的查询来实现的,这些查询针对$cmd集合来执行.runCommand仅仅是接受命令文档,执行等价查询. >db.runCommand({"drop":"test"}) 上面的命令等价于下面的查询: >db.$cmd.findOne({"d

MongoDB源码分析——mongod数据查询操作

源码版本为MongoDB 2.6分支 Edit mongod数据查询操作 在mongod的初始化过程中说过,服务端接收到客户端消息后调用MyMessageHandler::process函数处理消息. class MyMessageHandler : public MessageHandler { public: ... virtual void process( Message& m , AbstractMessagingPort* port , LastError * le) { while