欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作

程序员文章站 2024-01-22 23:26:40
...

一,先将现成的数据导入

需要用到mongodb中的数据库给我们提供的一个命令。
mongoimport -d 数据库名称 -c 集合名称 --file 要导入的数据文件
但是现在这个命令还不能使用,我们需要手动地将命令所在的这个目录呢,添加到系统环境变量path中。只有这样,命令行工具才能找到这个命令地可执行文件,然后才可以执行。
MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
这就是那个可执行文件,需要把它设置到系统环境变量path中。
MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
再重新打开命令行工具:
MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
从命令行的信息可以看到,连接成功数据库,并成功导入了6个文件。
MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
查看数据库,已经导入了!

二,从数据库中查询文档

MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
1,Course.find方法,默认查找的是集合下的所有文档,返回的是promise对象,所以可以用then方法来处理返回的结果。返回的结果是一个数组(文档的集合):

MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作

const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost/playground',{  useNewUrlParser: true,useUnifiedTopology: true } )
	.then(()=>console.log('数据库连接成功'))
	.catch(err=>console.log('数据库连接失败'))
	
//创建集合规则,传入的对象里面是自定义的数据规则
const userSchema = new mongoose.Schema({
	name:String,
	age:Number,
	email:String,
	password:String,
	hobbies:[String]
})
	
//使用规则集创建集合,数据库中已经有User这个数据库了。
const User = mongoose.model('User',userSchema)

// 查询用户集合中的所有文档
User.find().then(result=>console.log(result))

MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
这样查询的是这个名为user的集合下的所有数据,然而实际上,find方法里面可以传入参数,以限定查找的内容:
MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
数据库中有这些信息,例如使用唯一id来查找:

//限定查找的内容,返回数组,查询的是此集合的指定文档
User.find({
	_id:"5c09f2b6aeb04b22f846096a"
}).then(result=>console.log(result))

MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
返回值就只有对应的数据了。值得注意的是:无论差没查到,查到多少,返回结果都是一个数组!
2,还可以用User.findOne来查询一个,当参数为空时,默认返回文档的第一个,放在对象中。

//默认查找本集合下的第一条文档,返回值不再是数组,而是对象
User.findOne().then(result=>console.log(result))

MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作

有参数时,参数需是对象,里面放置筛选条件,然后返回的是文档中筛选出的一条文档:

//查找本集合下的指定文档,参数是个对象,返回值是对象
User.findOne({name:'李四'}).then(result=>console.log(result))

MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
3,当有时想要查询满足条件的多个文档时,还可以使用筛选的功能:匹配大于小于:

//年龄大于20小于40
User.find({age:{$gt:20,$lt:50}}).then(result=>console.log(result))

MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
4,匹配包含:

//匹配包含
User.find({hobbies:{$in:['足球']}}).then(result=>console.log(result))

5,选择要查询的属性,当我们要查询的时文档下的某些字段时:

//匹配字段
User.find().select('name email').then(result=>console.log(result))

MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作
6,根据字段进行排序

//根据年龄进行升序排列
User.find().sort('age').then(result=>console.log(result))
//根据年龄进行降序排列
User.find().sort('-age').then(result=>console.log(result))

7,跳过文档和限制显示文档数量
MongoDB学习(黑马教程)-2-数据库MongoDB的导入文档和查询文档的操作

相关标签: 数据库