千家信息网

mongodb的CURD操作详解

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,基本操作增删改查增: insert介绍: mongodb存储的是文档,. 文档是json格式的对象.语法: db.collectionName.isnert(document);1: 增加单篇文档Db
千家信息网最后更新 2025年01月21日mongodb的CURD操作详解

基本操作增删改查
增: insert
介绍: mongodb存储的是文档,. 文档是json格式的对象.

语法: db.collectionName.isnert(document);

1: 增加单篇文档
Db.collectionName.insert({title:'nice day'});

2: 增加单个文档,并指定_id
Db.collectionName.insert({_id:8,age:78,name:'lisi'});

3.增加多个文档
db.collectionName.insert(
[
{time:'friday',study:'mongodb'},
{_id:9,gender:'male',name:'QQ'}
]
)

删:remove
语法: db.collection.remove(查询表达式, 选项);
选项是指 {justOne:true/false},是否只删一行, 默认为false

注意
1: 查询表达式依然是个json对象
2: 查询表达式匹配的行,将被删掉.
3: 如果不写查询表达式,collections中的所有文档将被删掉.

例1: db.stu.remove({sn:'001'});
删除stu表中 sn属性值为'001'的文档

例2: db.stu.remove({gender:'m',true});
删除stu表中gender属性为m的文档,只删除1行.

改 update操作
改谁? --- 查询表达式
改成什么样? -- 新值 或 赋值表达式
操作选项 ----- 可选参数

语法: db.collection.update(查询表达式,新值,选项);
例:
db.news.update({name:'QQ'},{name:'MSN'});
是指选中news表中,name值为QQ的文档,并把其文档值改为{name:'MSN'},
结果: 文档中的其他列也不见了,改后只有_id和name列了.
即--新文档直接替换了旧文档,而不是修改

如果是想修改文档的某列,可以用$set关键字
db.collectionName.update(query,{$set:{name:'QQ'}})
例子:

如果不想要country字段了,使用$unset操作符删除即可:

修改时的赋值表达式
$set 修改某列的值
$unset 删除某个列
$rename 重命名某个列
$inc 增长某个列
$setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段.
例子:

Option的作用:
{upsert:true/false,multi:true/false}
Upsert---是指没有匹配的行,则直接插入该行.(和mysql中的replace一样)

例:db.stu.update({name:'wuyong'},{$set:{name:'junshiwuyong'}},{upsert:true});
如果有name='wuyong'的文档,将被修改
如果没有,将添加此新文档

例:
db.news.update({_id:99},{x:123,y:234},{upsert:true});
没有_id=99的文档被修改,因此直接插入该文档

multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)
例:
db.news.update({age:21},{$set:{age:22}},{multi:true});
则把news中所有age=21的文档,都修改
例子:

查: find, findOne
语法: db.collection.find(查询表达式,查询的列);
Db.collections.find(表达式,{列1:1,列2:1});

例1:db.stu.find()
查询所有文档 所有内容

例2: db.stu.find({},{gendre:1})
查询所有文档,的gender属性 (_id属性默认总是查出来)
例子:

例3: db.stu.find({},{gender:1, _id:0})
查询所有文档的gender属性,且不查询_id属性
例子:

例3: db.stu.find({gender:'male'},{name:1,_id:0});
查询所有gender属性值为male的文档中的name属性
例子:

Update时可用的操作符
例:
->db.user.insert({name:'lisi',age:12,sex:'male',height:123,area:'haidian'});
->db.user.update({name:'lisi'},{$set:{area:'chaoyang'},$unset:{height:1},$inc:{age:1},$rename:{sex:'gender'}});

db.user.find();
{ "_id" : ObjectId("51fc01c4f5de93e1f2856e33"), "age" : 13, "area" : "chaoyang", "gender" : "male", "name" : "lisi" }

$setOnInsert ->相当于mysql中的列的默认值

文档 查询 表达式 属性 例子 语法 多行 字段 对象 操作符 一行 作用 关键 关键字 内容 单个 单篇 参数 只有 基本操作 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 读写数据库d和dump 15项互联网领先科技成果获奖 凯铭风尚网络技术 windows终端服务器 光遇破服务器 辽宁省国税局网络安全法 我的世界大型服务器如何切换大厅 计算机网络技术发源于 护苗网络安全教育计划 计算机网络安全专业能考什么证 服务器在运行但进不了系统 分布式数据库系统复制透明性 武汉烽火通信软件开发招聘 长沙职业技术学院网络技术 上海迎宝教育软件开发 百度语音识别软件开发工具包 软件开发客户培训 任丘市黑鲨软件开发工作室 软件开发工程师项目职责 计算机三级数据库 题型 北京云畅天下网络技术有限公司 计算机软件开发服务合同纠纷 联通移动发展数据库 马阿里巴巴网络技术有限公司 数据库原理张红娟第四版 php 数据库 转义 网络安全宣传周为9月第几周 网络安全主题班会的新闻稿 铜梁区常规软件开发流程报价表 textarea数据库
0