美文网首页
MongoDB的基本操作

MongoDB的基本操作

作者: BlueSkyBlue | 来源:发表于2020-02-28 16:20 被阅读0次

    显示当前所有的数据库

    show dbs
    show databases
    

    进入数据库(假设此时我们有一个数据库test)

    use test
    

    use命令的作用是进入到指定的数据库中。

    在MongoDB中数据库和集合不需要我们自己手动创建。当我们创建文档时如果文档所在的集合或数据库不存在它会自动创建数据库或集合。

    数据库的创建是在我们第一次插入文档的时候真正创建。使用use命令的时候不会立即的创建数据库。

    显示当前所处的数据库

    db
    

    db表示的是当前我们所处的数据。

    显示数据库中的集合

    show collections
    

    数据库的CRUD操作

    向数据库中添加数据

    db.<collection>.insert(doc)
    

    向集合中插入一个文档。insert方法也可以插入多个文档。

    例子:
    向test数据库中的student集合插入一个新的学生对象。

    db.student.insert({name: "HFR", age:18, gender:"Male"})
    

    向test数据库中的student集合插入多个学生对象。

    db.student.insert([
        {name:"YFX", age:18, gender:"Male"},
        {name:"AKL", age:18, gender:"Male"},
        {name:"JCZ", age:18, gender:"Male"}
    ])
    

    当我们向集合中插入文档时,如果没有指定文档的_id属性,则数据库会自动为文档分配一个_id属性。该属性会依据时间戳和电脑的机器码生成,保证id的唯一性。我们也可以自己指定_id属性,但是需要我们自己保证id的唯一性。

    其它插入的方法

    db.<collection>.insertOne()
    db.<collection>.insertMany()
    

    查询当前集合中的所有文档

    db.student.find()
    

    find可以接收一个对象作为查询的条件。返回的是一个数组。例如

    db.student.find({_id: "hello"})
    

    db.<collection>.findOne():用于查询集合中符合条件的第一个文档。返回的是一个文档对象。
    db.<collection>.findMany()

    查询所有结果的总数

    db.student.find({}).count()
    

    如果通过内嵌文档对文档进行查询,此时的属性名必须使用引号。

    修改集合中的文档

    db.<collection>.update(查询条件:修改为的新对象)
    

    update默认情况下会使用我们创建的新对象来替换旧的对象。例如:

    db.student.update({name: "YFX"}, {age: 25})
    

    这里我们使用{age: 25}的对象替换{name: "YFX"}的对象。

    如果修改指定的属性而不是替换我们需要使用修改操作符($set)来完成修改。

    例如:

    db.student.update(
        {name: "YFX"}, 
        {$set: {age: 25}}
    )
    

    其它修改操作符:
    $unset:删除文档的指定属性
    update默认只会修改一个。但是update也可以修改多个

    db.student.update(
        {name: "YFX"}, 
        {$set: {age: 25}},
        {multi:true}
    )
    

    db.student.updateMany:同时修改多个符合条件的文档。
    db.student.updateOne:修改一个符合条件的文档。
    db.student.replaceOne:替换一个符合条件的文档。

    删除文档操作

    delete.<collection>.remove()
    delete.<collection>.deleteOne()
    delete.<collection>.deleteMany()
    

    remove可以根据条件来删除文档。该条件和find中的条件一样。

    remove默认情况下会删除多个。如果第二个参数传递一个true,则只会删除一个。

    如果传递一个空对象作为参数则会删除集合中的所有文档。但是该方法的性能很差。因为它是一个一个删除的。清空所有的内容最好使用

    delete.<collection>.drop()
    

    如果想删数据库可以使用以下命令

    db.dropDatabase()
    

    相关文章

      网友评论

          本文标题:MongoDB的基本操作

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