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()