命令行操作Mongodb

命令行操作Mongodb

准备工作:
1.D盘mongodb文件夹内解压下载好的mongodb文件
2.D盘根目录下创建一个文件夹data,在data内部再创建一个文件夹db
3.进入到mongodb的bin目录
4.按住shift,点击鼠标的右键,打开命令行窗口,输入如下指令打开数据库连接池
mongod --dbpath d:\data\db (我的要写.\mongod --dbpath d:\data\db)
5.再在此目录中,按住shift,点击鼠标的右键,打开命令行窗口,输入如下指令打开一个连接数据库的客户端,不要关闭上一个窗口
mongo (我的要写.\mongo)

数据库常用命令:
1.help查看命令提示:
help
db.help()
db.test.help()
db.test.find().help()

2.创建切换数据库(没有就创建并切换,有就切换)
db
use sh1906
db

3.查询数据库(明明已经创建了数据库sh1902,但是查询不出来,是因为现在你的数据库是空的,admin和local数据库是系统默认的数据库)
show dbs

4.显示当前DB状态
db.stats()

5.查看当前DB版本
db.version()

6.查看当前DB的链接机器地址
db.getMongo() //connection to 127.0.0.1:27017

7.删除数据库(虽然数据库删除成功,但是通过db还是可以访问到)

db
sh1906
db.dropDatabase()
{ “ok” : 1 }
db sh1902

8.查询当前所使用的数据库

db.getName()
sh1906

collection聚集集合操作(table)
1.创建一个聚集集合
db.createCollection(name, options)
db.createCollection(“collName”, {size: 20, capped: true, max: 100});
参数说明:name:要创建的集合名称
options:可选参数,指定有关内存大小及索引的选项
字段:capped 类型:布尔(可选) 描述:如果为true,则创建固定集合,固定集合是指有着固定大小的集合,当达到最大值时,它会覆盖最早的文档,当该值为true时,必须指定size参数。
字段:autoIndexId 类型:布尔(可选) 描述:如为 true,自动在 _id 字段创建索引。默认为 false。
字段:size 类型:数值(可选) 描述:为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定该字段。
字段:max 类型:数值(可选) 描述:指定固定集合中包含文档的最大数量。

创建了一个集合course,用于存储课程大纲

db.createCollection(“course”)
{ “ok” : 1 }

show dbs
admin 0.000GB
local 0.000GB sh1906 0.000GB // 本次执行多了sh1902,因为不再是空的数据库了

得到指定名称的聚集集合

db.getCollection(‘course’)
sh1906.course

得到当前DB的所有的聚集集合

db.createCollection(“users”)
{ “ok” : 1 }

db.getCollectionNames()
[ “course”, “users” ]

显示当前db所有集合的状态
db.printCollectionStats();
/nodejs中错误优先回调
document文档操作(增删改查)

1.插入文档
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:
db.COLLECTION_NAME.insert({}) || db.COLLECTION_NAME.insert([{},{}])//
db.collection_name.insertOne({}) // 向指定集合中插入一条文档数据 //放对象
db.collection_name.insertMany([{},{}]) // 向指定集合中插入多条文档数据 //放对象组成的数组

db.course.insert({
week1: ‘node’,
week2: ‘vue基础’,
week3: ‘vue应用’,
week4: ‘vue高级应用’,
week5: ‘react基础’,
week6: ‘react应用’,
week7: ‘react高级应用’,
week8: ‘微信相关开发’,
week9: ‘查漏补缺’
})
db.users.insertOne({
username: ‘吴大’,
password: ‘123456’,
age: 18,
tel: ‘18813007814’,
sex: ‘男’
})
db.users.insertMany([{
username: ‘徐炜’,
password: ‘123’,
age: 25,
tel: ‘18852981701’,
sex: ‘男’ },{
username: ‘牛萌萌’,
password: ‘456’,
age: 16,
tel: ‘15738353168’,
sex: ‘女’
}])

插入文档也可以用db.col.save(documnet)命令,如果不指定_id字段save()方法类似于insert()方法。如果指定_id字段,则会更新该_id的数据。

user.save((err) => {
if (err) throw err;
console.log(‘插入数据成功’)
})

insert 和 insertOne 在 mongoose 中不可用,只能使用insertMany
User.insertMany([{key:value,…}], err => {
if (err) throw err;
console.log(‘插入成功’)
})

2.删除数据

db.users.deleteOne({key:‘value’}) //删除密码为123的数据
db.users.find().pretty()

db.users.deleteMany({key:‘value’})
db.users.deleteMany({}) //删除所有数据
db.users.find().pretty()

User.deleteOne({key:value}, err => {})

3.修改数据
db.collection.updateOne({key:value},{KaTeX parse error: Expected 'EOF', got '}' at position 16: set:{key:value}}̲) db.collection…set:{key:value}})
db.collection.updateOne({kay:value},{KaTeX parse error: Expected 'EOF', got '}' at position 14: inc:{key:num}}̲) //修改某一条数据的…inc:{key:num}})

db.users.updateOne({username:‘吴大勋’},{KaTeX parse error: Expected 'EOF', got '}' at position 22: …asswors:'abcd'}}̲)//重置吴大勋的密码 db.…set:{lesson:‘3’,city:‘上海’}}) //修改(新增)属性
db.users.updateOne({username:‘吴大勋’},{KaTeX parse error: Expected 'EOF', got '}' at position 12: inc:{age:1}}̲) //把吴大勋的年龄…inc:{age:1}}) //把所有的年龄都增加1

User.updateOne({key, value}, {$set: {}}, err => {}) // $inc

4.查询数据
db.col.find()
db.col.find({}, {}).pretty()
db.col.find({key: value}, {}).pretty()
db.col.find({key: value, key: value}, {}).pretty() // 且
db.col.find({KaTeX parse error: Expected 'EOF', got '}' at position 31: …}, {key:value}]}̲, {}).pretty() …gt: 20, KaTeX parse error: Expected 'EOF', got '}' at position 7: lt: 50}̲}, {}).pretty()…gt)20,小于等于($lt)50
db.col.find({}, {}).count() //计数
db.users.find({username:‘大’}, {_id:0}).pretty() // 精确查询,没有匹配数据
db.users.find({username: /大/}, {_id:0}).pretty() //模糊查询,查到名字里含有大字的信息

db.course.find()
{ “_id” : ObjectId(“5cda34232f11bdac31760138”), “week1” : “node”, “week2” : “vue基础”, “week3” : “vue应用”, “week4” : “vue高级应用”, “week5” : “react基础”, “week6” : “react应用”, “week7” : “react高级应用”, “week8” : “微信相关开发”, “week9” : “查漏补缺” }

db.course.find().pretty()//使用pretty()方法以格式化的方式来显示所有文档。
{
“_id” : ObjectId(“5cda34232f11bdac31760138”),
“week1” : “node”,

}

db.users.find().pretty()
db.users.find({},{}).pretty()//查询所有的数据,显示所有的字段
{
“_id” : ObjectId(“5cda35212f11bdac31760139”),
“username” : “吴大”,
“password” : “123456”,
“age” : 18,
“tel” : “18813007814”,
“sex” : “男”
}
{
“_id” : ObjectId(“5cda36372f11bdac3176013a”),
“username” : “徐炜”,
“password” : “123”,
“age” : 25,
“tel” : “18852981701”,
“sex” : “男”
}
{
“_id” : ObjectId(“5cda36372f11bdac3176013b”),
“username” : “牛萌萌”,
“password” : “456”,
“age” : 16,
“tel” : “15738353168”,
“sex” : “女”
}

db.users.find({},{_id:0}).pretty() //不显示_id字段
{
“username” : “吴大”,
“password” : “abcd”,
“age” : 20,
“tel” : “18813007814”,
“sex” : “男”,
“lesson” : “3”,
“city” : “上海”
}
{

}

db.users.find({},{_id:0,username:1}).pretty() //不显示_id字段,只显示username字段
{ “username” : “吴大” }
{ “username” : “徐炜” }
{ “username” : “牛萌萌” }

db.users.find({},{_id:0,username:1,age:1}).pretty //不显示_id字段,显示username字段和age字段
{ “username” : “吴大勋”, “age” : 20 }
{ “username” : “徐炜”, “age” : 26 }
{ “username” : “牛萌萌”, “age” : 17 }

db.users.find({usename:‘吴大勋’},{_id:0}).pretty()
{
“username” : “吴大”,
“password” : “abcd”,
“age” : 20,
“tel” : “18813007814”,
“sex” : “男”,
“lesson” : “3”,
“city” : “上海”
}

db.users.find({lesson:‘3’},{id:0}).pretty() //显示lesson为3的所有数据,其中id不显示

db.users.find({$or:[{password:‘123’},{password:‘456’}]},{_id:0}).pretty()//显示password为123或者password为456的数据,不显示id

大于等于 g t 小 于 等 于 gt 小于等于 gtlt

db.users.find({age: {KaTeX parse error: Expected 'EOF', got '}' at position 7: gt: 24}̲ }, {_id:0}).pr…gt
db.users.find({age: {KaTeX parse error: Expected 'EOF', got '}' at position 7: lt: 24}̲ }, {_id:0}).pr…lt
db.users.find({age: { $gte: 18, $lte: 20}}, {_id:0}).pretty() //查询18~20之间的数据

排序 .sort({key:num}) num为1表示按照key值升序,为-1表示降序

db.users.find({},{_id:0}).sort({age:1}).pretty()

计数count

db.users.find({}, {_id: 0}).count() //3 //查询数据并且计数
db.users.find({age: { $gte: 18, $lte: 20}}, {_id:0}).count() // 1

精确查询’’/模糊查询//

db.users.find({username:‘大’}, {_id:0}).pretty() // 精确查询,没有匹配数据
db.users.find({username: /大/}, {_id:0}).pretty() //模糊查询,查到名字里含有大字的信息
db.users.find({$or:[{username:/大/},{username:/萌/}]}, {_id:0}).pretty()//查询名字中有大或者萌字的

User.find({},{},(err,data) => {
if (err) {
console.log(err)
} else {
console.log(res)
}
})
******************************************用这个写法,因为上一个写法不好写排序
User.find({条件},{显示字段}).exec((err, data) => {})
User.find({},{}).sort(age:1).exec((err,data)=>{})

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在MongoDB命令行中删除用户,可以按照以下步骤进行操作: 1. 首先,进入MongoDB的终端。你可以使用如下命令进入MongoDB程序目录: `cd /usr/local/mongodb/bin` 2. 确保你已经登录到MongoDB的管理账户。你可以使用如下命令登录到MongoDB: `mongo` 3. 使用以下命令切换到相应的数据库: `use <database_name>` 其中,`<database_name>`是你要删除用户的数据库名称。 4. 运行以下命令删除用户: `db.dropUser("<username>")` 其中,`<username>`是你要删除的用户名。 注意:在执行删除用户的命令之前,请确保你有足够的权限来进行该操作。 以上是在MongoDB命令行中删除用户的步骤。请确保在执行任何操作之前先备份你的数据,并且谨慎操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [系统内或docker下mongodb使用命令创建用户及设置权限和删除用户](https://blog.csdn.net/GodDavide/article/details/104839891)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MongoDB 命令行操作](https://blog.csdn.net/weixin_52203618/article/details/128258627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值