NoSQL 数据库案例实战 --MongoDB 数据库 数据的插入、查询、更新、删除

MongoDB 数据库 数据的插入、查询、更新、删除

前言

本环境是基于 Centos 7.8 系统构建mongodb-enterprise-4.2.8学习环境
具体构建,请参考 mongodb-enterprise-4.2.8 环境构建

MongoDB,基于文档存储,向集合中存储数据时,没有特定的要求,插入数据形式比较自由,这也是NoSQL不同于关系型数据库的主要地方。下面,我将详细介绍MongoDB数据的增、删、改、查 操作。


一、数据的插入

建立数据库、集合

[root@node01 ~]# mongo
MongoDB shell version v4.2.8
# 创建库
MongoDB Enterprise > use school
switched to db school
# 创建集合
MongoDB Enterprise > db.createCollection('student')
# 查看集合所在库
MongoDB Enterprise > db.getCollection('student')
school.student

student 集合插入数据

# 插入单条数据
MongoDB Enterprise > db.student.insert({
    
    id:01,name:'张三',gender:'M'})

# 插入单条数据
MongoDB Enterprise > db.student.save({
    
    id:02,name:'张敏',gender:'M',age:33})

# 插入单条数据
MongoDB Enterprise > db.student.insertOne({
    
    id:03,name:'张无忌',age:44,gender:'M'})


# 插入多条数据
MongoDB Enterprise > db.student.insertMany([
{
    
    id:04,name:'李四',age:18},
{
    
    id:05,name:'王刚',gender:'M',age:60},
{
    
    id:06,name:'赵薇',gender:'F',age:44}
])



# 插入多维数据
db.student.insertMany( [
{
    
    id:07,name:'孙八',sex:'男',age:21,address:{
    
    province:'Hebei',city:'tangshan'}}, 
{
    
    id:08,name:'侯九',sex:'男',age:20,address:{
    
    province:'Zhejiang',city:'hangzhou'}},
{
    
    id:09,name:'熊十',sex:'女',age:21,address:{
    
    province:'Fujian',city:'xiamen'}}
] )


# 插入数组信息的数据
db.student.insertMany([
{
    
    id:10,name:'吴京',sex:'男',age:43,address:{
    
    province:'beijing',city:'beijing'},hobdy:['mil','Fight','sing']},
{
    
    id:11,name:'杨幂',sex:'女',age:31,address:{
    
    province:'HongKong',city:'HongKong'},hobdy:['dance','shopping','sing']},
{
    
    id:12,name:'黄渤',sex:'男',age:43,address:{
    
    province:'Shandong',city:'qingdao'},hobdy:['dance','game','sing']}
])

查看所有数据

MongoDB Enterprise > db.student.find()
{
    
     "_id" : ObjectId("602a0d81310063fbb7d16e7b"), "id" : 1, "name" : "张三", "gender" : "M" }
{
    
     "_id" : ObjectId("602a0dc0310063fbb7d16e7c"), "id" : 2, "name" : "张敏", "gender" : "M", "age" : 33 }
{
    
     "_id" : ObjectId("602a0e23310063fbb7d16e7d"), "id" : 3, "name" : "张无忌", "age" : 44, "gender" : "M" }
{
    
     "_id" : ObjectId("602a0fa7310063fbb7d16e7e"), "id" : 4, "name" : "李四", "age" : 18 }
{
    
     "_id" : ObjectId("602a0fa7310063fbb7d16e7f"), "id" : 5, "name" : "王刚", "gender" : "M", "age" : 60 }
{
    
     "_id" : ObjectId("602a0fa7310063fbb7d16e80"), "id" : 6, "name" : "赵薇", "gender" : "F", "age" : 44 }
{
    
     "_id" : ObjectId("602a10e9310063fbb7d16e81"), "id" : 7, "name" : "孙八", "sex" : "男", "age" : 21, "address" : {
    
     "province" : "Hebei", "city" : "tangshan" } }
{
    
     "_id" : ObjectId("602a10e9310063fbb7d16e82"), "id" : 8, "name" : "侯九", "sex" : "男", "age" : 20, "address" : {
    
     "province" : "Zhejiang", "city" : "hangzhou" } }
{
    
     "_id" : ObjectId("602a10e9310063fbb7d16e83"), "id" : 9, "name" : "熊十", "sex" : "女", "age" : 21, "address" : {
    
     "province" : "Fujian", "city" : "xiamen" } }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e84"), "id" : 10, "name" : "吴京", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "beijing", "city" : "beijing" }, "hobdy" : [ "mil", "Fight", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e85"), "id" : 11, "name" : "杨幂", "sex" : "女", "age" : 31, "address" : {
    
     "province" : "HongKong", "city" : "HongKong" }, "hobdy" : [ "dance", "shopping", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e86"), "id" : 12, "name" : "黄渤", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "Shandong", "city" : "qingdao" }, "hobdy" : [ "dance", "game", "sing" ] }

二、数据的查询

基础查询

# 查询所有数据
MongoDB Enterprise > db.student.find().pretty()
{
    
    
	"_id" : ObjectId("602a0d81310063fbb7d16e7b"),
	"id" : 1,
	"name" : "张三",
	"gender" : "M"
}
{
    
    
	"_id" : ObjectId("602a0dc0310063fbb7d16e7c"),
	"id" : 2,
	"name" : "张敏",
	"gender" : "M",
	"age" : 33
}
{
    
    
	"_id" : ObjectId("602a0e23310063fbb7d16e7d"),
	"id" : 3,
	"name" : "张无忌",
	"age" : 44,
	"gender" : "M"
}
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e7e"),
	"id" : 4,
	"name" : "李四",
	"age" : 18
}
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e7f"),
	"id" : 5,
	"name" : "王刚",
	"gender" : "M",
	"age" : 60
}
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e80"),
	"id" : 6,
	"name" : "赵薇",
	"gender" : "F",
	"age" : 44
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e81"),
	"id" : 7,
	"name" : "孙八",
	"sex" : "男",
	"age" : 21,
	"address" : {
    
    
		"province" : "Hebei",
		"city" : "tangshan"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e82"),
	"id" : 8,
	"name" : "侯九",
	"sex" : "男",
	"age" : 20,
	"address" : {
    
    
		"province" : "Zhejiang",
		"city" : "hangzhou"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e83"),
	"id" : 9,
	"name" : "熊十",
	"sex" : "女",
	"age" : 21,
	"address" : {
    
    
		"province" : "Fujian",
		"city" : "xiamen"
	}
}
{
    
    
	"_id" : ObjectId("602a1352310063fbb7d16e84"),
	"id" : 10,
	"name" : "吴京",
	"sex" : "男",
	"age" : 43,
	"address" : {
    
    
		"province" : "beijing",
		"city" : "beijing"
	},
	"hobdy" : [
		"mil",
		"Fight",
		"sing"
	]
}
{
    
    
	"_id" : ObjectId("602a1352310063fbb7d16e85"),
	"id" : 11,
	"name" : "杨幂",
	"sex" : "女",
	"age" : 31,
	"address" : {
    
    
		"province" : "HongKong",
		"city" : "HongKong"
	},
	"hobdy" : [
		"dance",
		"shopping",
		"sing"
	]
}
{
    
    
	"_id" : ObjectId("602a1352310063fbb7d16e86"),
	"id" : 12,
	"name" : "黄渤",
	"sex" : "男",
	"age" : 43,
	"address" : {
    
    
		"province" : "Shandong",
		"city" : "qingdao"
	},
	"hobdy" : [
		"dance",
		"game",
		"sing"
	]
}


# 单个条件查询
MongoDB Enterprise > db.student.find({
    
    id:05}).pretty()
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e7f"),
	"id" : 5,
	"name" : "王刚",
	"gender" : "M",
	"age" : 60
}


# 按照条件范围查询

-- 年龄等于31岁人的所有信息
MongoDB Enterprise > db.student.find({
    
    age:31}).pretty()
{
    
    
	"_id" : ObjectId("602a1352310063fbb7d16e85"),
	"id" : 11,
	"name" : "杨幂",
	"sex" : "女",
	"age" : 31,
	"address" : {
    
    
		"province" : "HongKong",
		"city" : "HongKong"
	},
	"hobdy" : [
		"dance",
		"shopping",
		"sing"
	]
}

--年龄大于44岁人的所有信息
MongoDB Enterprise > db.student.find({
    
    age:{
    
    $gt:44}}).pretty()
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e7f"),
	"id" : 5,
	"name" : "王刚",
	"gender" : "M",
	"age" : 60
}

--年龄大于等于44岁人的所有信息
MongoDB Enterprise > db.student.find({
    
    age:{
    
    $gte:44}}).pretty()
{
    
    
	"_id" : ObjectId("602a0e23310063fbb7d16e7d"),
	"id" : 3,
	"name" : "张无忌",
	"age" : 44,
	"gender" : "M"
}
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e7f"),
	"id" : 5,
	"name" : "王刚",
	"gender" : "M",
	"age" : 60
}
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e80"),
	"id" : 6,
	"name" : "赵薇",
	"gender" : "F",
	"age" : 44
}

-- 年龄小于31岁人的所有信息
MongoDB Enterprise > db.student.find({
    
    age:{
    
    $lt:21}}).pretty()
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e7e"),
	"id" : 4,
	"name" : "李四",
	"age" : 18
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e82"),
	"id" : 8,
	"name" : "侯九",
	"sex" : "男",
	"age" : 20,
	"address" : {
    
    
		"province" : "Zhejiang",
		"city" : "hangzhou"
	}
}

-- 年龄小于等于31岁人的所有信息
MongoDB Enterprise > db.student.find({
    
    age:{
    
    $lte:21}}).pretty()
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e7e"),
	"id" : 4,
	"name" : "李四",
	"age" : 18
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e81"),
	"id" : 7,
	"name" : "孙八",
	"sex" : "男",
	"age" : 21,
	"address" : {
    
    
		"province" : "Hebei",
		"city" : "tangshan"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e82"),
	"id" : 8,
	"name" : "侯九",
	"sex" : "男",
	"age" : 20,
	"address" : {
    
    
		"province" : "Zhejiang",
		"city" : "hangzhou"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e83"),
	"id" : 9,
	"name" : "熊十",
	"sex" : "女",
	"age" : 21,
	"address" : {
    
    
		"province" : "Fujian",
		"city" : "xiamen"
	}
}

# 查询年龄不等于44岁的人
MongoDB Enterprise > db.student.find({
    
    age:{
    
    $ne:44}}).pretty()
{
    
    
	"_id" : ObjectId("602a0d81310063fbb7d16e7b"),
	"id" : 1,
	"name" : "张三",
	"gender" : "M"
}
{
    
    
	"_id" : ObjectId("602a0dc0310063fbb7d16e7c"),
	"id" : 2,
	"name" : "张敏",
	"gender" : "M",
	"age" : 33
}
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e7e"),
	"id" : 4,
	"name" : "李四",
	"age" : 18
}
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e7f"),
	"id" : 5,
	"name" : "王刚",
	"gender" : "M",
	"age" : 60
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e81"),
	"id" : 7,
	"name" : "孙八",
	"sex" : "男",
	"age" : 21,
	"address" : {
    
    
		"province" : "Hebei",
		"city" : "tangshan"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e82"),
	"id" : 8,
	"name" : "侯九",
	"sex" : "男",
	"age" : 20,
	"address" : {
    
    
		"province" : "Zhejiang",
		"city" : "hangzhou"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e83"),
	"id" : 9,
	"name" : "熊十",
	"sex" : "女",
	"age" : 21,
	"address" : {
    
    
		"province" : "Fujian",
		"city" : "xiamen"
	}
}
{
    
    
	"_id" : ObjectId("602a1352310063fbb7d16e84"),
	"id" : 10,
	"name" : "吴京",
	"sex" : "男",
	"age" : 43,
	"address" : {
    
    
		"province" : "beijing",
		"city" : "beijing"
	},
	"hobdy" : [
		"mil",
		"Fight",
		"sing"
	]
}
{
    
    
	"_id" : ObjectId("602a1352310063fbb7d16e85"),
	"id" : 11,
	"name" : "杨幂",
	"sex" : "女",
	"age" : 31,
	"address" : {
    
    
		"province" : "HongKong",
		"city" : "HongKong"
	},
	"hobdy" : [
		"dance",
		"shopping",
		"sing"
	]
}
{
    
    
	"_id" : ObjectId("602a1352310063fbb7d16e86"),
	"id" : 12,
	"name" : "黄渤",
	"sex" : "男",
	"age" : 43,
	"address" : {
    
    
		"province" : "Shandong",
		"city" : "qingdao"
	},
	"hobdy" : [
		"dance",
		"game",
		"sing"
	]
}



# 多条件查询
-- 查询性别男、年龄小于30虽然的所有信息(条件与)
MongoDB Enterprise > db.student.find({
    
    sex:'男',age:{
    
    $lt:30}}).pretty()
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e81"),
	"id" : 7,
	"name" : "孙八",
	"sex" : "男",
	"age" : 21,
	"address" : {
    
    
		"province" : "Hebei",
		"city" : "tangshan"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e82"),
	"id" : 8,
	"name" : "侯九",
	"sex" : "男",
	"age" : 20,
	"address" : {
    
    
		"province" : "Zhejiang",
		"city" : "hangzhou"
	}
}



-- 查询性别男、年龄大于20小于33虽然的所有信息(条件与)
MongoDB Enterprise > db.student.find({
    
    age:{
    
    $gte:20,$lte:33}}).pretty()
{
    
    
	"_id" : ObjectId("602a0dc0310063fbb7d16e7c"),
	"id" : 2,
	"name" : "张敏",
	"gender" : "M",
	"age" : 33
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e81"),
	"id" : 7,
	"name" : "孙八",
	"sex" : "男",
	"age" : 21,
	"address" : {
    
    
		"province" : "Hebei",
		"city" : "tangshan"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e82"),
	"id" : 8,
	"name" : "侯九",
	"sex" : "男",
	"age" : 20,
	"address" : {
    
    
		"province" : "Zhejiang",
		"city" : "hangzhou"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e83"),
	"id" : 9,
	"name" : "熊十",
	"sex" : "女",
	"age" : 21,
	"address" : {
    
    
		"province" : "Fujian",
		"city" : "xiamen"
	}
}
{
    
    
	"_id" : ObjectId("602a1352310063fbb7d16e85"),
	"id" : 11,
	"name" : "杨幂",
	"sex" : "女",
	"age" : 31,
	"address" : {
    
    
		"province" : "HongKong",
		"city" : "HongKong"
	},
	"hobdy" : [
		"dance",
		"shopping",
		"sing"
	]
}



--- 查询性别女、年龄小于等于21虽然的所有信息(条件或)
MongoDB Enterprise > db.student.find({
    
    $or:[{
    
    sex:'女'},{
    
    age:{
    
    $lte:21}}]}).pretty()
{
    
    
	"_id" : ObjectId("602a0fa7310063fbb7d16e7e"),
	"id" : 4,
	"name" : "李四",
	"age" : 18
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e81"),
	"id" : 7,
	"name" : "孙八",
	"sex" : "男",
	"age" : 21,
	"address" : {
    
    
		"province" : "Hebei",
		"city" : "tangshan"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e82"),
	"id" : 8,
	"name" : "侯九",
	"sex" : "男",
	"age" : 20,
	"address" : {
    
    
		"province" : "Zhejiang",
		"city" : "hangzhou"
	}
}
{
    
    
	"_id" : ObjectId("602a10e9310063fbb7d16e83"),
	"id" : 9,
	"name" : "熊十",
	"sex" : "女",
	"age" : 21,
	"address" : {
    
    
		"province" : "Fujian",
		"city" : "xiamen"
	}
}
{
    
    
	"_id" : ObjectId("602a1352310063fbb7d16e85"),
	"id" : 11,
	"name" : "杨幂",
	"sex" : "女",
	"age" : 31,
	"address" : {
    
    
		"province" : "HongKong",
		"city" : "HongKong"
	},
	"hobdy" : [
		"dance",
		"shopping",
		"sing"
	]
}


# 结合正则查询
--- 查询以姓名张开头的信息
MongoDB Enterprise > db.student.find({
    
    name:/^张/}).pretty()
{
    
    
	"_id" : ObjectId("602a0d81310063fbb7d16e7b"),
	"id" : 1,
	"name" : "张三",
	"gender" : "M"
}
{
    
    
	"_id" : ObjectId("602a0dc0310063fbb7d16e7c"),
	"id" : 2,
	"name" : "张敏",
	"gender" : "M",
	"age" : 33
}
{
    
    
	"_id" : ObjectId("602a0e23310063fbb7d16e7d"),
	"id" : 3,
	"name" : "张无忌",
	"age" : 44,
	"gender" : "M"
}


--- 查询姓名含有三的信息
MongoDB Enterprise > db.student.find({
    
    name:/三/}).pretty()
{
    
    
	"_id" : ObjectId("602a0d81310063fbb7d16e7b"),
	"id" : 1,
	"name" : "张三",
	"gender" : "M"
}



#查询指定列的信息
MongoDB Enterprise > db.student.find({
    
    name:/^张/},{
    
    name:1,age:1,_id:0}).pretty()
{
    
     "name" : "张三" }
{
    
     "name" : "张敏", "age" : 33 }
{
    
     "name" : "张无忌", "age" : 44 }
# 注意,设置字段要么都是0,要么都是1,不能既有0又有1,_id除外,可以任意设置。


# 查询时,排序
---  按年龄升序
MongoDB Enterprise > db.student.find({
    
    },{
    
    name:1,age:1,_id:0}).sort({
    
    age: 1})
{
    
     "name" : "张三" }
{
    
     "name" : "李四", "age" : 18 }
{
    
     "name" : "侯九", "age" : 20 }
{
    
     "name" : "孙八", "age" : 21 }
{
    
     "name" : "熊十", "age" : 21 }
{
    
     "name" : "杨幂", "age" : 31 }
{
    
     "name" : "张敏", "age" : 33 }
{
    
     "name" : "吴京", "age" : 43 }
{
    
     "name" : "黄渤", "age" : 43 }
{
    
     "name" : "张无忌", "age" : 44 }
{
    
     "name" : "赵薇", "age" : 44 }
{
    
     "name" : "王刚", "age" : 60 }

--- 按年龄降序
MongoDB Enterprise > db.student.find({
    
    },{
    
    name:1,age:1,_id:0}).sort({
    
    age: -1})
{
    
     "name" : "王刚", "age" : 60 }
{
    
     "name" : "张无忌", "age" : 44 }
{
    
     "name" : "赵薇", "age" : 44 }
{
    
     "name" : "吴京", "age" : 43 }
{
    
     "name" : "黄渤", "age" : 43 }
{
    
     "name" : "张敏", "age" : 33 }
{
    
     "name" : "杨幂", "age" : 31 }
{
    
     "name" : "孙八", "age" : 21 }
{
    
     "name" : "熊十", "age" : 21 }
{
    
     "name" : "侯九", "age" : 20 }
{
    
     "name" : "李四", "age" : 18 }
{
    
     "name" : "张三" }


# 查询前三条记录
MongoDB Enterprise > db.student.find({
    
    },{
    
    age:1,name:1,_id:0}).sort({
    
    age: 1}).limit(3)
{
    
     "name" : "张三" }
{
    
     "name" : "李四", "age" : 18 }
{
    
     "name" : "侯九", "age" : 20 }


# 查询第八条后面的数据
MongoDB Enterprise > db.student.find({
    
    },{
    
    age:1,name:1,_id:0}).sort({
    
    age: 1}).skip(8)
{
    
     "name" : "黄渤", "age" : 43 }
{
    
     "name" : "张无忌", "age" : 44 }
{
    
     "name" : "赵薇", "age" : 44 }
{
    
     "name" : "王刚", "age" : 60 }

# 查询5--8条数据
MongoDB Enterprise > db.student.find({
    
    },{
    
    age:1,name:1,_id:0}).sort({
    
    age: 1}).skip(4).limit(3)
{
    
     "name" : "熊十", "age" : 21 }
{
    
     "name" : "杨幂", "age" : 31 }
{
    
     "name" : "张敏", "age" : 33 }


#  统计年龄小于25岁的人数
MongoDB Enterprise > db.student.find({
    
    age:{
    
    $lt:25}}).count()
4


# 多维字段查询
MongoDB Enterprise > db.student.find({
    
    'address.province':'Zhejiang'})
{
    
     "_id" : ObjectId("602a10e9310063fbb7d16e82"), "id" : 8, "name" : "侯九", "sex" : "男", "age" : 20, "address" : {
    
     "province" : "Zhejiang", "city" : "hangzhou" } }

# 数组条件查询
MongoDB Enterprise > db.student.find({
    
    hobdy:'shopping'})
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e85"), "id" : 11, "name" : "杨幂", "sex" : "女", "age" : 31, "address" : {
    
     "province" : "HongKong", "city" : "HongKong" }, "hobdy" : [ "dance", "shopping", "sing" ] }

MongoDB Enterprise > db.student.find({
    
    hobdy:{
    
    $all:['dance','sing']}})
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e85"), "id" : 11, "name" : "杨幂", "sex" : "女", "age" : 31, "address" : {
    
     "province" : "HongKong", "city" : "HongKong" }, "hobdy" : [ "dance", "shopping", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e86"), "id" : 12, "name" : "黄渤", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "Shandong", "city" : "qingdao" }, "hobdy" : [ "dance", "game", "sing" ] }

高级查询

# 查询满足任意一个条件的数据(in)
MongoDB Enterprise > db.student.find({
    
    hobdy:{
    
    $in:['dance','sing']}})
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e84"), "id" : 10, "name" : "吴京", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "beijing", "city" : "beijing" }, "hobdy" : [ "mil", "Fight", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e85"), "id" : 11, "name" : "杨幂", "sex" : "女", "age" : 31, "address" : {
    
     "province" : "HongKong", "city" : "HongKong" }, "hobdy" : [ "dance", "shopping", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e86"), "id" : 12, "name" : "黄渤", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "Shandong", "city" : "qingdao" }, "hobdy" : [ "dance", "game", "sing" ] }


# 查询hobdy存在的信息
MongoDB Enterprise > db.student.find({
    
    hobdy:{
    
    $exists:true}})
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e84"), "id" : 10, "name" : "吴京", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "beijing", "city" : "beijing" }, "hobdy" : [ "mil", "Fight", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e85"), "id" : 11, "name" : "杨幂", "sex" : "女", "age" : 31, "address" : {
    
     "province" : "HongKong", "city" : "HongKong" }, "hobdy" : [ "dance", "shopping", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e86"), "id" : 12, "name" : "黄渤", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "Shandong", "city" : "qingdao" }, "hobdy" : [ "dance", "game", "sing" ] }


# 查询age不存在的信息
MongoDB Enterprise > db.student.find({
    
    age:{
    
    $exists:false}})
{
    
     "_id" : ObjectId("602a0d81310063fbb7d16e7b"), "id" : 1, "name" : "张三", "gender" : "M" }


# 年龄除5余3的信息
MongoDB Enterprise > db.student.find({
    
    age:{
    
    $mod:[5,3]}})
{
    
     "_id" : ObjectId("602a0dc0310063fbb7d16e7c"), "id" : 2, "name" : "张敏", "gender" : "M", "age" : 33 }
{
    
     "_id" : ObjectId("602a0fa7310063fbb7d16e7e"), "id" : 4, "name" : "李四", "age" : 18 }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e84"), "id" : 10, "name" : "吴京", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "beijing", "city" : "beijing" }, "hobdy" : [ "mil", "Fight", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e86"), "id" : 12, "name" : "黄渤", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "Shandong", "city" : "qingdao" }, "hobdy" : [ "dance", "game", "sing" ] }


# 查询gender不是M的信息
MongoDB Enterprise > db.student.find({
    
    gender:{
    
    $ne:'M'}})
{
    
     "_id" : ObjectId("602a0fa7310063fbb7d16e7e"), "id" : 4, "name" : "李四", "age" : 18 }
{
    
     "_id" : ObjectId("602a0fa7310063fbb7d16e80"), "id" : 6, "name" : "赵薇", "gender" : "F", "age" : 44 }
{
    
     "_id" : ObjectId("602a10e9310063fbb7d16e81"), "id" : 7, "name" : "孙八", "sex" : "男", "age" : 21, "address" : {
    
     "province" : "Hebei", "city" : "tangshan" } }
{
    
     "_id" : ObjectId("602a10e9310063fbb7d16e82"), "id" : 8, "name" : "侯九", "sex" : "男", "age" : 20, "address" : {
    
     "province" : "Zhejiang", "city" : "hangzhou" } }
{
    
     "_id" : ObjectId("602a10e9310063fbb7d16e83"), "id" : 9, "name" : "熊十", "sex" : "女", "age" : 21, "address" : {
    
     "province" : "Fujian", "city" : "xiamen" } }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e84"), "id" : 10, "name" : "吴京", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "beijing", "city" : "beijing" }, "hobdy" : [ "mil", "Fight", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e85"), "id" : 11, "name" : "杨幂", "sex" : "女", "age" : 31, "address" : {
    
     "province" : "HongKong", "city" : "HongKong" }, "hobdy" : [ "dance", "shopping", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e86"), "id" : 12, "name" : "黄渤", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "Shandong", "city" : "qingdao" }, "hobdy" : [ "dance", "game", "sing" ] }

# 查看hobdy不包含shopping、game的记录
MongoDB Enterprise > db.student.find({
    
    hobdy:{
    
    $nin:['shopping','game']}})
{
    
     "_id" : ObjectId("602a0d81310063fbb7d16e7b"), "id" : 1, "name" : "张三", "gender" : "M" }
{
    
     "_id" : ObjectId("602a0dc0310063fbb7d16e7c"), "id" : 2, "name" : "张敏", "gender" : "M", "age" : 33 }
{
    
     "_id" : ObjectId("602a0e23310063fbb7d16e7d"), "id" : 3, "name" : "张无忌", "age" : 44, "gender" : "M" }
{
    
     "_id" : ObjectId("602a0fa7310063fbb7d16e7e"), "id" : 4, "name" : "李四", "age" : 18 }
{
    
     "_id" : ObjectId("602a0fa7310063fbb7d16e7f"), "id" : 5, "name" : "王刚", "gender" : "M", "age" : 60 }
{
    
     "_id" : ObjectId("602a0fa7310063fbb7d16e80"), "id" : 6, "name" : "赵薇", "gender" : "F", "age" : 44 }
{
    
     "_id" : ObjectId("602a10e9310063fbb7d16e81"), "id" : 7, "name" : "孙八", "sex" : "男", "age" : 21, "address" : {
    
     "province" : "Hebei", "city" : "tangshan" } }
{
    
     "_id" : ObjectId("602a10e9310063fbb7d16e82"), "id" : 8, "name" : "侯九", "sex" : "男", "age" : 20, "address" : {
    
     "province" : "Zhejiang", "city" : "hangzhou" } }
{
    
     "_id" : ObjectId("602a10e9310063fbb7d16e83"), "id" : 9, "name" : "熊十", "sex" : "女", "age" : 21, "address" : {
    
     "province" : "Fujian", "city" : "xiamen" } }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e84"), "id" : 10, "name" : "吴京", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "beijing", "city" : "beijing" }, "hobdy" : [ "mil", "Fight", "sing" ] }

三、数据的更新

# 吴京年龄改成45
MongoDB Enterprise > db.student.update({
    
    name:'吴京'},{
    
    $set:{
    
    age:45}})
WriteResult({
    
     "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
MongoDB Enterprise > db.student.find({
    
    name:'吴京'})
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e84"), "id" : 10, "name" : "吴京", "sex" : "男", "age" : 45, "address" : {
    
     "province" : "beijing", "city" : "beijing" }, "hobdy" : [ "mil", "Fight", "sing" ] }

# 满足条件的人年龄加2岁
MongoDB Enterprise > db.student.find({
    
    sex:'男',age:{
    
    $gte:30}})
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e84"), "id" : 10, "name" : "吴京", "sex" : "男", "age" : 45, "address" : {
    
     "province" : "beijing", "city" : "beijing" }, "hobdy" : [ "mil", "Fight", "sing" ] }
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e86"), "id" : 12, "name" : "黄渤", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "Shandong", "city" : "qingdao" }, "hobdy" : [ "dance", "game", "sing" ] }


MongoDB Enterprise > db.student.update({
    
    sex:'男',age:{
    
    $gte:30}},{
    
    $inc:{
    
    age:2}})
WriteResult({
    
     "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })


MongoDB Enterprise > db.student.find({
    
    name:'吴京'})
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e84"), "id" : 10, "name" : "吴京", "sex" : "男", "age" : 47, "address" : {
    
     "province" : "beijing", "city" : "beijing" }, "hobdy" : [ "mil", "Fight", "sing" ] }
MongoDB Enterprise > db.student.find({
    
    name:'黄渤'})
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e86"), "id" : 12, "name" : "黄渤", "sex" : "男", "age" : 43, "address" : {
    
     "province" : "Shandong", "city" : "qingdao" }, "hobdy" : [ "dance", "game", "sing" ] }


MongoDB Enterprise > db.student.update({
    
    sex:'男',age:{
    
    $gte:30}},{
    
    $inc:{
    
    age:2}},{
    
    multi: true})
WriteResult({
    
     "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
MongoDB Enterprise > db.student.find({
    
    name:'吴京'})
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e84"), "id" : 10, "name" : "吴京", "sex" : "男", "age" : 49, "address" : {
    
     "province" : "beijing", "city" : "beijing" }, "hobdy" : [ "mil", "Fight", "sing" ] }
MongoDB Enterprise > db.student.find({
    
    name:'黄渤'})
{
    
     "_id" : ObjectId("602a1352310063fbb7d16e86"), "id" : 12, "name" : "黄渤", "sex" : "男", "age" : 45, "address" : {
    
     "province" : "Shandong", "city" : "qingdao" }, "hobdy" : [ "dance", "game", "sing" ] }


注:
b.表.update({
    
    条件},{
    
    '$set' :{
    
    字段:值,字段:值}})
db.表.update({
    
    条件},{
    
    字段:值,字段:值})$set的修改:只修改设置的字段,其他字段不变
没有$set的修改:只修改设置的字段,没有修改的字段就删除了(_id除外)
注意:字段有则修改没有则添加新字段

四、数据的删除

# 删除指定的字段
MongoDB Enterprise > db.student.update({
    
    name:'王刚'},{
    
    $unset:{
    
    age:1,gender:1}})
WriteResult({
    
     "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
MongoDB Enterprise > db.student.find({
    
    name:'王刚'})
{
    
     "_id" : ObjectId("602a0fa7310063fbb7d16e7f"), "id" : 5, "name" : "王刚" }

# 删除指定的记录
MongoDB Enterprise > db.student.remove({
    
    name:'王刚'})
WriteResult({
    
     "nRemoved" : 1 })
MongoDB Enterprise > db.student.find({
    
    name:'王刚'})
MongoDB Enterprise > 

猜你喜欢

转载自blog.csdn.net/XY0918ZWQ/article/details/113816012
今日推荐