美文网首页
Mongodb 学习笔记(二)

Mongodb 学习笔记(二)

作者: 我的小鱼干去哪儿了 | 来源:发表于2019-01-03 22:04 被阅读0次

日常的增删查改

1. 增: insert

介绍: mongodb 存储的是文档,文档是json格式的对象。
语法:

db.collectionName.insert(document);
db.stu.insert([{_id:4,sn:'004', name:'xiaowang'}, {_id:5,sn:'005', name:"xiaoxiao"}])

2. 删: remove

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

例1:属性为name的document将被删掉:

db.collectionName.remove({name:'001'})

例2:collectionName中age为23的documents中将被删掉一个

db.collectionName.remove({age:23}, true)

注意:

  • 查询表达式依然是个json对象
  • 查询表达式匹配的行将被删掉
  • 如果不写查询表达式,collection中的所有文档都将被删掉

3. 查: find, findOne

语法: db.collection.find(查询表达式,查询的列)

db.collectionName.find(表达式, {列1:1, 列2:1})

例: 查询指定collection中的所有文档 所有内容

 db.stu.find()

例: 只查询name列(_id属性总是默认查出来)

 db.stu.find({}, {name:1})

例: 查询所有gender为male的文档的name列(_id属性总是默认查出来)

 db.stu.find({gender:'male'}, {name:1})

例: 只查询name列, 但是不查询id列

 db.stu.find({}, {name:1, _id:0})

4. 改: update

改谁? -- 查询表达式
改成什么样? -- 新值 或 赋值表达式

语法: db.collectionName.update(查询表达式, 新值,选项)

例: 如下是指 选中news中name为QQ的文档,并把其文档值改为{name:'MSN'}

db.news.update({name:'QQ'}, {name:'MSN'})

结果: 文档中的其他列也不见了,改后只有_id 和name列了。即新文档值直接替换了旧文档而不是修改。

如果想修改文档的某列,可以使用$set关键字:

db.news.update({name:'QQ'}, {$set:{name:'MSN'}})

修改时的赋值表达式:

$set: 修改某列的值 或者 新增某列
$unset: 删除某列
$rename: 重命名某个列
$inc: 某个列的值
$setOnInsert: 当upsert为true时,并且发生了insert操作时,可以补充的字段
image.png

Option的作用:
{upsert:true/false,multi:true/false}

  • Upsert: 是指没有匹配的行则直接插入该行(和mysql中的replace一样), 默认为true, 不存在直接插入

例: 没有_id = 99的文档被修改,则直接插入该文档

db.news.update({_id, 99}, {x:123,y:1234}, {upsert:true})
  • Multi: 是指修改多行(即使查询表达式能够匹配都行,默认也只改一行, 如果想改多行,则设置该选项为true)
    例:
image.png

相关文章

网友评论

      本文标题:Mongodb 学习笔记(二)

      本文链接:https://www.haomeiwen.com/subject/bdgqrqtx.html