美文网首页
mongodb基本指令

mongodb基本指令

作者: 江海大初学者 | 来源:发表于2019-08-07 13:50 被阅读0次

    MongoDB基本指令

    1. 查看当前有哪些数据库:show dbs 或者 show databases

    2. 进入到指定数据库: use <database name>

    # 进入test数据库
    use test
    
    1. 查看当前所处的数据库:db

    2. 查看数据中所有的集合:show collections

    数据库的CRUD操作

    1. 插入文档

    1.1 插入一个或多个文档:db.<collection>.insert(doc)
    当向集合中插入文档时,若没有给文档指定_id属性,则数据库会自动为文档添加_id,该属性用来唯一标识文档

    # 向test数据库中,stus集合中插入一个学生对象
    db.stus.insert({name: 'tom', age: 22})
    
    # 向test数据库中,stus集合中插入两个学生对象
    db.stus.insert([{name: 'gerry', age: 20}, {name: 'tom', age: 22}])
    

    1.2 只插入一个文档:db.<collection>.insertOne(doc)

    PS: doc必须是一个对象

    # 向test数据库中,stus集合中插入一个学生对象
    db.stus.insert({name: 'tom', age: 22})
    

    1.3 只插入多个文档:db.<collection>.insertMany(doc)

    PS: doc必须是一个数组

    # 向test数据库中,stus集合中插入两个学生对象
    db.stus.insert([{name: 'gerry', age: 20}, {name: 'tom', age: 22}])
    

    2. 查询文档

    2.1 查询当前集合中的所有文档:db.<collection>.find() 或 db.<collection>.find({})
    返回值:数组

    # 在test数据库中,查询stus集合
    db.stus.find()
    # 或
    db.<collection>.find({})
    

    2.2 查询当前集合中符合某一条件的所有文档:db.<collection>.find(condition)
    返回值:数组

    PS: condition必须是一个对象

    # 在test数据库中,查询stus集合中,name是tom的文档
    db.stus.find({name: 'tom'})
    

    2.3 查询当前集合中符合某一条件的第一条文档:db.<collection>.findOne(condition)
    返回值:对象

    PS: condition必须是一个对象

    # 在test数据库中,查询stus集合中,name是tom的文档
    db.stus.findOne({name: 'tom'})
    

    2.4 查询文档的数量:db.<collection>.find(condition).count() 或 db.<collection>.find(condition).length()
    返回值:整数

    PS: condition必须是一个对象

    # 在test数据库中,查询stus集合中文档的个数
    db.stus.find({}).count()
    # 或
    db.stus.find({}).length()
    

    3. 修改文档

    3.1 用新对象替换旧对象:db.<collection>.update(queryCondition, newObject, [options])

    # 在test数据库中,将name是tom的文档替换成{age:88}
    db.stus.update({name: 'tom'}, {age: 88})
    

    3.2 修改指定属性,使用修改操作符$set来完成修改,若该属性没有,则会自动添加该属性:db.<collection>.update(queryCondition, {$set: newDataObject})

    PS:update默认情况只会修改一个,若想修改多个,使用updateOne或者增加options项{multi: true}

    # 将name是tom的第一个文档的age修改为20
    db.stus.update({name: 'tom'}, {$set: {age: 20}})
    
    # 将name是tom的所有文档的age修改为20
    db.stus.update({name: 'tom'}, {$set: {age: 20}}, {multi: true})
    

    3.3 同时修改多个符合条件的文档:db.<collection>.updateMany(queryCondition, {$set: newDataObject})

    # 将name是tom的文档的age修改为20
    db.stus.updateMany({name: 'tom'}, {$set: {age: 20}})
    

    3.4 修改一个符合条件的文档:db.<collection>.updateOne(queryCondition, {$set: newDataObject})

    # 将name是tom的文档的age修改为20
    db.stus.updateOne({name: 'tom'}, {$set: {age: 20}})
    

    3.5 替换文档:db.<collection>.replaceOne(queryCondition, newObject)

    # 将name是tom的文档的age修改为20
    db.stus.replaceOne({name: 'tom'}, {age: 20, address:'earth'})
    

    4. 删除文档

    4.1 删除一个或多个文档:db.<collection>.remove(queryCondition, [options])
    PS:默认情况下删除多个,若想删除多个,添加配置项true ,如果只传一个空对象{},则会清空文档

    # 在test数据库中,删除name是tom的所有文档
    db.stus.remove({name: 'tom'})
    
    # 在test数据库中,删除name是tom的一个文档
    db.stus.remove({name: 'tom'}, true)
    
    # 在test数据库中,清空stus集合
    db.stus.remove({})
    

    PS: 使用db.stus.remove({})清空集合性能差,直接删除集合更快db.stus.drop();

    4.2 删除一个或多个文档:db.<collection>.deleteOne(queryCondition)

    # 在test数据库中,删除name是tom的一个文档
    db.stus.deleteOne({name: 'tom'})
    

    4.3 删除一个或多个文档:db.<collection>.deleteMany(queryCondition)

    # 在test数据库中,删除name是tom的所有文档
    db.stus.deleteMany({name: 'tom'})
    

    5. 删除数据库:db.dropDatabase()

    相关文章

      网友评论

          本文标题:mongodb基本指令

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