注册

MongoDB集合的增删改查管理

MongoDB是一个非关系型数据库,集合是MongoDB中最基本的数据存储单位。本文将详细讲解MongoDB集合的增删改查管理的完整攻略,包含两条示例说明。

新建集合

要在MongoDB中新建一个集合,可以使用以下命令:

db.createCollection("collectionName")

其中,collectionName为新集合的名称。例如,我们要创建一个名称为students的集合,可以使用以下命令:

db.createCollection("students")

插入数据

要在MongoDB的集合中插入一条或多条数据,可以使用以下命令:

db.集合名.insert(文档对象或文档对象数组)

其中,集合名为要插入数据的集合名称,文档对象或文档对象数组为要插入的数据。例如,我们要在名为students的集合中插入一条数据,可以使用以下命令:

db.students.insert({
    name: "Tom",
    age: 18,
    sex: "male"
})

查找数据

要在MongoDB的集合中查找数据,可以使用以下命令:

db.集合名.find(查询条件, 返回字段)

其中,集合名为要查找数据的集合名称,查询条件为查询语句,返回字段为返回的数据字段。例如,我们要在名为students的集合中查找年龄为18岁的学生姓名和性别,可以使用以下命令:

db.students.find(
    {age: 18},
    {name: true, sex: true, _id: false}
)

更新数据

要在MongoDB的集合中更新数据,可以使用以下命令:

db.集合名.update(查询条件, 更新内容, {multi: true})

其中,集合名为要更新数据的集合名称,查询条件为查询语句,更新内容为更新数据的内容,multi: true表示更新符合查询条件的所有数据,默认为false,只更新第一条符合条件的数据。例如,我们要将名为students的集合中姓名为Tom的学生年龄改为20岁,可以使用以下命令:

db.students.update(
    {name: "Tom"},
    {$set: {age: 20}},
    {multi: true}
)

删除数据

要在MongoDB的集合中删除数据,可以使用以下命令:

db.集合名.remove(查询条件)

其中,集合名为要删除数据的集合名称,查询条件为查询语句。例如,我们要删除名为students的集合中年龄大于20岁的学生数据,可以使用以下命令:

db.students.remove(
    {age: {$gt: 20}}
)

以上是MongoDB集合的增删改查管理的完整攻略,下面提供两个示例说明:

示例一

需求:新建一个名为books的集合,并往集合中添加三本书的信息,然后查询其中价格小于20元的书的信息,并将这些书的价格更新为30元。

// 新建一个名为books的集合
db.createCollection("books")

// 往集合中添加三本书的信息
db.books.insert([
    {
        name: "Harry Potter and the Philosopher's Stone",
        author: "J.K. Rowling",
        price: 26.5
    },
    {
        name: "The Adventures of Tom Sawyer",
        author: "Mark Twain",
        price: 18.8
    },
    {
        name: "The Catcher in the Rye",
        author: "J.D. Salinger",
        price: 32.9
    }
])

// 查询其中价格小于20元的书的信息,并将这些书的价格更新为30元
db.books.update(
    {price: {$lt: 20}},
    {$set: {price: 30}},
    {multi: true}
)

// 查询现有书籍信息
db.books.find()

示例二

需求:新建一个名为students的集合,并往集合中添加五名学生的信息,然后查询其中年龄大于等于20岁的学生的姓名和性别,然后删除这些学生的信息。

// 新建一个名为students的集合
db.createCollection("students")

// 往集合中添加五名学生的信息
db.students.insert([
    {
        name: "Tom",
        age: 18,
        sex: "male"
    },
    {
        name: "Lucy",
        age: 22,
        sex: "female"
    },
    {
        name: "Jack",
        age: 19,
        sex: "male"
    },
    {
        name: "Lily",
        age: 20,
        sex: "female"
    },
    {
        name: "Bob",
        age: 25,
        sex: "male"
    }
])

// 查询其中年龄大于等于20岁的学生的姓名和性别
db.students.find(
    {age: {$gte: 20}},
    {name: true, sex: true, _id: false}
)

// 删除这些学生的信息
db.students.remove(
    {age: {$gte: 20}}
)

// 查询现有学生信息
db.students.find()