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

一,先将现成的数据导入

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

二,从数据库中查询文档

在这里插入图片描述
1,Course.find方法,默认查找的是集合下的所有文档,返回的是promise对象,所以可以用then方法来处理返回的结果。返回的结果是一个数组(文档的集合):

在这里插入图片描述

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

在这里插入图片描述
这样查询的是这个名为user的集合下的所有数据,然而实际上,find方法里面可以传入参数,以限定查找的内容:
在这里插入图片描述
数据库中有这些信息,例如使用唯一id来查找:

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

在这里插入图片描述
返回值就只有对应的数据了。值得注意的是:无论差没查到,查到多少,返回结果都是一个数组!
2,还可以用User.findOne来查询一个,当参数为空时,默认返回文档的第一个,放在对象中。

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

在这里插入图片描述

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

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

在这里插入图片描述
3,当有时想要查询满足条件的多个文档时,还可以使用筛选的功能:匹配大于小于:

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

在这里插入图片描述
4,匹配包含:

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

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

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

在这里插入图片描述
6,根据字段进行排序

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

7,跳过文档和限制显示文档数量
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值