网站体验分享,wordpress 更换编辑器,wordpress如何代码高亮,台州网站制作计划From#xff1a;MongoDB Shell 了解使用 - 大葱哥 - 博客园
MongoDB基本管理命令#xff1a;MongoDB基本管理命令_千与的专栏-CSDN博客_mongo查询命令
MongoDB常用操作命令大全#xff1a;MongoDB常用操作命令大全_piaocoder-CSDN博客_mongodb常用命令 mongodb 命令行基本…
FromMongoDB Shell 了解使用 - 大葱哥 - 博客园
MongoDB基本管理命令MongoDB基本管理命令_千与的专栏-CSDN博客_mongo查询命令
MongoDB常用操作命令大全MongoDB常用操作命令大全_piaocoder-CSDN博客_mongodb常用命令 mongodb 命令行基本命令使用大全mongodb 命令行基本命令使用大全_请叫我大师兄-CSDN博客 MongoDB日常运维操作命令小结MongoDB日常运维操作命令小结 - 散尽浮华 - 博客园 mongodb的命令行(增删改查、高级查询)mongodb的命令行操作命令详解(增删改查、高级查询)_凌云之陟-CSDN博客_mongodb操作命令 菜鸟教程 之 MongoDB 教程MongoDB 教程 | 菜鸟教程 MongoDB 中文手册MongoDB 中文手册 配置环境变量 WIN10系统右键单击 此电脑 --- 属性 --- 高级系统设置 --- 高级 --- 环境变量添加C:\Program Files\MongoDB\Server\3.0\bin; 如果不配置环境变量则需到 C:\Program Files\MongoDB\Server\3.0\bin 目录执行 mongo.exe文件。 下图直接 cmd命令mongo表示连接成功。 Shell 的一些操作 命名规范 不能是空字符串)。不得含有 空格)、.、$、/、\和\0 (空字符)。应全部小写。最多64字节。一些系统关键字。 1、创建一个数据库 执行下面命令。example数据库名如果只创建数据库而不做处理这个空数据库会被删除。命令use example 2、查看所有数据库 验证上面的创建的数据下面不存在。命令show dbs 3、给指定数据库添加集合并添加记录 user集合名 insert插入一条记录 db.user.insert({name:yujie})WriteResult({ nInserted : 1 }) --表示成功 再 show dbs 查看数据库创建成功。 添加 字段 data dict(field_1value_1,field_2value_2,field_3value1_3,
)
db_tb.update_one({_id: ObjectId(5b345e03651a790cd872b633)}, {$set: data}) 更新字 db.products.update({_id: 100},{ $set:{quantity: 500,details: {model: 14Q3, make: xyz},tags: [coats, outerwear, clothing]} }
) python 示例 user_name king
db_tb.update_one({_id: ObjectId(5b345e03651a7)}, {$set: {name: user_name}}) 4、查看所有文档 命令show collections 5、查看 user文档 中的所有记录 db.user.find()
{ _id : ObjectId(598c05e503bd136ff3ea0257), name : xiaoming } 查看记录数量 db.user.find().count() 6、查看 user文档 中的第一条记录 db.user.findOne()
{ _id : ObjectId(598c05e503bd136ff3ea0257), name : xiaoming } 7、更新文档数据 Mongodb 数据更新命令update、saveMongodb数据更新命令update、save - 天外飞仙丶 - 博客园 update({查询条件}, {更新内容}) db.user.update({name:xiaoming},{$set:{name:小明}})
WriteResult({ nMatched : 1, nUpserted : 0, nModified : 1 }) db.user.find()
{ _id : ObjectId(598c05e503bd136ff3ea0257), name : 小明 } 6、删除文档数据 remove({条件}) db.user.insert({name:zhangsan}) --先插入一条
WriteResult({ nInserted : 1 }) db.user.find() --再查询
{ _id : ObjectId(598c05e503bd136ff3ea0257), name : 小明 }
{ _id : ObjectId(598c0b0603bd136ff3ea0258), name : zhangsan } db.user.remove({name:zhangsan}) --再删除
WriteResult({ nRemoved : 1 }) db.user.find() --再查询
{ _id : ObjectId(598c05e503bd136ff3ea0257), name : 小明 } 7、删除数据库 db.dropDatabase() use delectdb --创建数据库
switched to db delectdb db.dropDatabase() --删除数据库
{ ok : 1 } 8、帮助 db.help() -- db.数据库名.help() MongoDB语法 与 关系型数据库SQL语法 比较 MongoDB语法MySql语法db.test.find({name:foobar})select * from test where namefoobardb.test.find()select * from testdb.test.find({ID:10}).count()select count(*) from test where ID10db.test.find().skip(10).limit(20)select * from test limit 10,20db.test.find({ID:{$in:[25,35,45]}})select * from test where ID in (25,35,45)db.test.find().sort({ID:-1})select * from test order by ID descdb.test.distinct(name,{ID:{$lt:20}})select distinct(name) from test where ID20db.test.group({key:{name:true},cond:{name:foo},reduce:function(obj,prev){prev.msumobj.marks;},initial:{msum:0}})select name,sum(marks) from testgroup by namedb.test.find(this.ID20,{name:1})select name from test where ID20db.test.insert({name:foobar,age:25})insert into test (name,age) values(foobar,25)db.test.remove({})delete * from testdb.test.remove({age:20})delete test where age20db.test.remove({age:{$lte:20}})delete test where age20db.test.remove({age:{$gt:20}})delete test where age20db.test.remove({age:{$gte:20}})delete test where age20db.test.remove({age:{$ne:20}})delete test where age!20db.test.update({name:foobar},{$set:{age:36}})update test set age36 where namefoobardb.test.update({name:foobar},{$inc:{age:3}})update test set ageage3 where namefoobar模糊查询$regex
db.test.find({name:{$regex:aaa}})
分组个数过滤
db.getCollection(id_mapper).aggregate([{$group:{ _id :$contract_id,count:{$sum:1}}},{$match:{count:{$gt:1}}}])
判断是否为空
db.getCollection(id_mapper).find({sinocardid:{$in:[null]}}) Mongodb 高级查询 --- 多级路径查询
db.getCollection(cinema_portrait).find({_id:10100}, {portrait.data.124.90天一级品类:1})
{ _id : 10100, portrait : { data : { 124 : { 90天一级品类 : { 食品饮料、酒类、生鲜 : 1.12, 手机、数码 : 0.95, 家用电器 : 0.94, 家具、家具、家装、厨具 : 0.77, 电脑、办公 : 0.57, 母婴、玩具乐器 : 0.57, 服饰内衣、珠宝首饰 : 0.43, 鞋靴、箱包、钟表、奢侈品 : 0.4, 营养保健 : 0.38 } } } } } mongodb 与 mysql 命令对比
来源MongoDB命令及SQL语法对比_数据人生-CSDN博客
传统的关系数据库一般由数据库database、表table、记录record三个层次概念组成MongoDB是由数据库database、集合collection、文档对象document三个层次组成。MongoDB对于关系型数据库里的表但是集合中没有列、行和关系概念这体现了模式自由的特点。 MySQL MongoDB 说明 mysqld mongod 服务器守护进程 mysql mongo 客户端工具 mysqldump mongodump 逻辑备份工具 mysql mongorestore 逻辑恢复工具 db.repairDatabase() 修复数据库 mysqldump mongoexport 数据导出工具 source mongoimport 数据导入工具 grant * privileges on *.* to … Db.addUser() Db.auth() 新建用户并权限 show databases show dbs 显示库列表 Show tables Show collections 显示表列表 Show slave status Rs.status 查询主从状态 Create table users(a int, b int) db.createCollection(mycoll, {capped:true, size:100000}) 另可隐式创建表。 创建表 Create INDEX idxname ON users(name) db.users.ensureIndex({name:1}) 创建索引 Create INDEX idxname ON users(name,ts DESC) db.users.ensureIndex({name:1,ts:-1}) 创建索引 Insert into users values(1, 1) db.users.insert({a:1, b:1}) 插入记录 Select a, b from users db.users.find({},{a:1, b:1}) 查询表 Select * from users db.users.find() 查询表 Select * from users where age33 db.users.find({age:33}) 条件查询 Select a, b from users where age33 db.users.find({age:33},{a:1, b:1}) 条件查询 select * from users where age33 db.users.find({age:{$lt:33}}) 条件查询 select * from users where age33 and age40 db.users.find({age:{$gt:33,$lte:40}}) 条件查询 select * from users where a1 and bq db.users.find({a:1,b:q}) 条件查询 select * from users where a1 or b2 db.users.find( { $or : [ { a : 1 } , { b : 2 } ] } ) 条件查询 select * from users limit 1 db.users.findOne() 条件查询 select * from users where name like %Joe% db.users.find({name:/Joe/}) 模糊查询 select * from users where name like Joe% db.users.find({name:/^Joe/}) 模糊查询 select count(1) from users Db.users.count() 获取表记录数 select count(1) from users where age30 db.users.find({age: {$gt: 30}}).count() 获取表记录数 select DISTINCT last_name from users db.users.distinct(last_name) 去掉重复值 select * from users ORDER BY name db.users.find().sort({name:-1}) 排序 select * from users ORDER BY name DESC db.users.find().sort({name:-1}) 排序 EXPLAIN select * from users where z3 db.users.find({z:3}).explain() 获取存储路径 update users set a1 where bq db.users.update({b:q}, {$set:{a:1}}, false, true) 更新记录 update users set aa2 where bq db.users.update({b:q}, {$inc:{a:2}}, false, true) 更新记录 delete from users where zabc db.users.remove({z:abc}) 删除记录 db. users.remove() 删除所有的记录 drop database IF EXISTS test; use test db.dropDatabase() 删除数据库 drop table IF EXISTS test; db.mytable.drop() 删除表/collection db.addUser(‘test’, ’test’) 添加用户 readOnly--false db.addUser(‘test’, ’test’, true) 添加用户 readOnly--true db.addUser(test,test222) 更改密码 db.system.users.remove({user:test}) 或者db.removeUser(test) 删除用户 mongodb 语法
MongoDB 的好处挺多的比如多列索引查询时可以用一些统计函数支持多条件查询但是目前多表查询是不支持的可以想办法通过数据冗余来解决多表查询的问题。
Mongo DB对数据的操作很丰富下面做一些举例说明内容大部分来自官方文档另外有部分为自己理解。
查询 colls 所有数据
db.colls.find() //select * from colls通过指定条件查询
db.colls.find({last_name: Smith}); //select * from colls where last_nameSmith指定多条件查询
db.colls.find( { x : 3, y : foo } ); //select * from colls where x3 and yfoo指定条件范围查询
db.colls.find({j: {$ne: 3}, k: {$gt: 10} }); //select * from colls where j!3 and k10查询不包括某内容
db.colls.find({}, {a:0}); //查询除a为0外的所有数据支持 , , , 查询需用符号替代分别为 $lt$lte$gt$gte
db.colls.find({ field : { $gt: value } } );
db.colls.find({ field : { $lt: value } } );
db.colls.find({ field : { $gte: value } } );
db.colls.find({ field : { $lte: value } } );也可对某一字段做范围查询
db.colls.find({ field : { $gt: value1, $lt: value2 } } );不等于查询用字符$ne
db.colls.find( { x : { $ne : 3 } } );in查询用字符$in
db.colls.find( { field : { $in : array } } );
db.colls.find({j:{$in: [2,4,6]}});not in查询用字符$nin
db.colls.find({j:{$nin: [2,4,6]}});取模查询用字符$mod
db.colls.find( { a : { $mod : [ 10 , 1 ] } } ) // where a % 10 1$all查询
db.colls.find( { a: { $all: [ 2, 3 ] } } ); //指定a满足数组中任意值时$size查询
db.colls.find( { a : { $size: 1 } } ); //对对象的数量查询此查询查询a的子对象数目为1的记录$exists查询
db.colls.find( { a : { $exists : true } } ); // 存在a对象的数据
db.colls.find( { a : { $exists : false } } ); // 不存在a对象的数据$type查询 $type值为 bsonhttp://bsonspec.org/ 数据的类型值
db.colls.find( { a : { $type : 2 } } ); // 匹配a为string类型数据
db.colls.find( { a : { $type : 16 } } ); // 匹配a为int类型数据使用正则表达式匹配
db.colls.find( { name : /acme.*corp/i } ); //类似于SQL中like内嵌对象查询
db.colls.find( { author.name : joe } );1.3.3版本及更高版本包含$not查询
db.colls.find( { name : { $not : /acme.*corp/i } } );
db.colls.find( { a : { $not : { $mod : [ 10 , 1 ] } } } );sort()排序
db.colls.find().sort( { ts : -1 } ); //1为升序2为降序limit()对限制查询数据返回个数
db.colls.find().limit(10)skip()跳过某些数据
db.colls.find().skip(10)snapshot()快照保证没有重复数据返回或对象丢失count()统计查询对象个数
db.students.find({address.state : CA}).count(); //效率较高
db.students.find({address.state : CA}).toArray().length; //效率很低group()对查询结果分组和SQL中group by函数类似
distinct()返回不重复值 MongoDB GUI Robo 3T Shell使用及操作 FromMongoDB GUI Robo 3T Shell使用及操作 - 大葱哥 - 博客园 Robo 3T 下载及使用
之前叫 Robomongo后面被收购了改名 Robo 3T 。
下载链接Robo 3T | Free, open-source MongoDB GUI (formerly Robomongo)
安装步骤省略下一步下一步...
图形界面连接默认取个名字就行。 连接成功可以愉快的使用了不用总是敲命令了简洁方便多种显示。 软件右边可以切换显示样式慢慢折腾。 Robo 3T Shell 操作
右键数据库打开Shell 下面玩一下没用的语法绿色按钮为运行命令。
1、批量插入默认是不支批量操作只能用for循环。 2、$type 操作符基于BSON类型来检索集合中匹配的数据类型并返回结果。
先增加一些数据然后查询出来 同一界面需要选中执行的一行不然会一直执行第一个命令。 3、Limit与Skip的用法
查询文档中两条记录
第一个 {} 放 where 条件为空表示返回集合中所有文档。第二个 {} 指定那些列显示和不显示 0表示不显示 1表示显示)。查询显示第2、3条文档数据
skip()方法默认参数为 0 。skip 和 limit 结合就能实现分页。排序 sort() 方法 索引 ensureIndex() 方法
多个字段索引db.student.ensureIndex({name:1,hobby:-1})聚合 aggregate()
这里只操作一种方法分组并统计其它的可以查看相关用法和文档。 总结常用的一些基本用法就这些高级用法可以慢慢再研究。说实话这个工具挺实用的还有些智能提示不用天天对着一个黑框哈哈。接下开始实战。