mongodb的基本操作命令
admin
2023-04-12 09:43:34
0


=== mongodb的基本操作命令================= 


DDL操作===========================================================================================

创建架构:use  Schema ;  在Schema中创建一个对象即可 db.createCollection("CollectionName")。相当于 create database DBName ;

创建一个集合: db.createCollection("test"); 相当于DBMS中的创建表 create table TableName();

展示架构: show dbs;   相当于mysql 中的 show databases ;

展示集合个数: show  collections; show tables 

删除当前架构:use Schema ;  db.dropDatabase();    drop  database DBName

修改集合名:db.CollectionName.renameCollection("NewName")   ;  类似 mysql 中的 alter table oldTable  rename  to  NewTable ;

删除集合:db.collections.drop(); 类似 mysql 中 drop table tableName;

查看当前所在的DB:db


用户相关操作================================================================

添加用户:db.addUser("UserName","PWD")

验证用户是否添加成功:db.auth("UserName","PWD")

删除用户:db.removUsers("testUser")

权限相关:

http://blog.itpub.net/22664653/viewspace-715617/


DML操作=====================================================================

查询集合:db.CollectionName.find({}) ; 相当于 select * from TableName

等式条件查询:db.CollectionName.find({key01:value01}); 相当于 select * from  TableName where key01=value01  

查询字段的不同值(去重):db.CollectionName.distinct("Key") 类似 select distinct(key) from  table

模糊查询:db.collections.find({key:/ang/}); select * from  tableName where key like  '%ang%' ;

        :db.collections.find({key:/^ang/}) ; select * from  tableName where key like 'ang%' ; 

        :db.collections.find({key:/g$/});  select * from  tableName where key like '%ang'

查询出指定的列明:db.collections.find({},{key01:false,key02:true,key03:true}); select key02,key03 from  tableName 

范围查找:db.collections.find({key01:{$gt:20}}); select * from  tableName where  key01 > 20

        :db.collections.find({key01:{$lge:20}}); select * from tableName where key01 >= 20

:db.collections.find({key01:{$lt:20}}); select * from  tableName where key01 < 20

:db.collections.find(){key01:{$lte:20}}; select * from tableName where key01 <= 20

升序排序:db.collections.find({}).sort({key:1}); select * from  tableName order  by  key asc

降序排序:db.collections.find({}).sort({key:-1}); select * from  tableName order by  key desc

记录汇总:db.collections.find({}).count({}); select count(*) from tableName 

        :db.collections.find({}).count({key:false}) select count(key) from tableName

返回指定行数:DBQuery.shellBatchSize=num/db.collections.find({}).limit(num) 类似于 sqlserver set rowcount  num 

or的操作:db.collections.find({"$or":[{key01:valu01},{key02:value02}]}); select * from  tableName where key01=valu01 or  key02=value02

in操作:db.test.find({key01:{$in:[valu01,valu02,valu03]}});  select  * from  tableName where key01  in (valu01,valu02,valu03)

and的操作:db.collections.find({key01:{$gte:24,$lte:28}}); select * from  tableName where key01 >=24 and key01 <= 28 

:db.collections.find({key01:valu02,key02:valu02}); select * from tableName where key01=valu01 and  key02=valu02

不等于操作:db.collections.find({key01:{$ne:valu01}}); select * from  tableName where key01 <>  valu01  

$not的相关操作:db.collections.find({key:{$not:{$in:[valu01,valu02]}}}); select * from tableName  where key not in (valu01,valu02)

               注意:db.collections.find(key:{$not:valu01});  没有这种写法 

 

正则表达式:后续研究

数组的相关操作

$mod:取模函数

$inc

$maxscan:制定本次查询中扫描文档的最大数量

$min:查询的开始条件,

$max:查询的结束条件

$showDiskLoc:显示该条结果在磁盘上的位置。


删除数据:db.CollectionName.remove({key:value});

修改数据:db.collections.update({key01:valu01}},{"$set":{key02:NewValue}}); 

添加数

db.collection.update({},{},{upsert:1},{multi:1});

和字段更新相关的操作符:

$set:用来指定一个键的值。如果这个键不存在,则创建它。

$unset:从文档中移除指定的键。

$inc:"inc"修改器用来增加已有键的值,或者在键不存在时创建一个键。inc就是专门来增加(和减少)数字的。

"$inc"只能用于整数、长整数或双精度浮点数。要是用在其他类型的数据上就会导致操作失败。(在当前值的基础上再加指定的值)

$rename:修改某个键的的名字db.collection.update({},{});

upsert:根据第一个条件查询集合,如果没有找到相关数据,就将数据插入集合中.

multi:多行操作.


mongodb键值更新问题:

http://www.cnblogs.com/egger/archive/2013/05/15/3053617.html

http://www.tuicool.com/articles/FbeArq

http://blog.csdn.net/mcpang/article/details/7752736


据:db.CollectionName.Save({key01:value01,key02:value02})/db.CollectionName.insert({key01:value01,key02:value02})


查看帮助: db.CollectionName.help();




相关内容

热门资讯

徐巧芯剖析赖清德:最怕自己丢掉... 海峡导报综合报道 大罢免投票一周年纪念活动26日举行,台北市长蒋万安出席并怒轰,民进党一年过后仍没有...
中国红十字会总会紧急向广东调拨... 记者从中国红十字会总会了解到,针对台风“红霞”给广东造成的灾情,中国红十字会总会启动四级应急响应,紧...
这些少年,正被“毒蛋”围猎 李梦抽了几口电子烟,吐出了白色的烟雾,有一股浓烈的水果香味。随后,她看着自己握电子烟的手,跟身边人说...
蒋万安号召“倒阁”,卢秀燕认为... 海峡导报综合报道 台北市长蒋万安27日抛出震撼议题,表示多名民代向他提议推动“倒阁”,要求台行政机构...
特朗普将在白宫会见两位重要客人 俄乌战争仍未结束,美伊冲突又有升级风险。在此背景下,美国总统特朗普将在白宫接见乌克兰和以色列领导人。...
新租客打扫卧室柜子上掉落4万元... 近日,莲前西路某小区内,张倩签下一套房子的租赁合同。当天上午,她带着12岁的大女儿周馨怡和11岁的小...
六部门通告:禁止涉军队退役报废... 关于禁止涉军队退役报废装备销售活动的通告近年来,部分经营者在线上线下公开销售涉及我军退役报废装备(指...
九寨沟景区发生泥石流,部分道路... 7月26日,九寨沟风景名胜区管理局发布泥石流灾害通报:2026年7月26日15时50分,九寨沟景区局...
空调26度不凉是什么原因 从空调内部元器件来说,不凉的原因有可能是温度传感器出现故障了,也有可能是空调压缩机或者铜管出现问题,...
鲸鸿动能携手香港国际机场、鸿蒙...   2026 年 7 月 25 日,十余位鸿蒙车主组成的车队从珠海出发,经港珠澳大桥通关抵达香港国际...