下班路上看见网上有人问一个问题: oracle 10g以后count(*)和count(非空列)性能方面有什么区别?...首先,准备测试数据,11g库表bisal的id1列是主键(确保id1列为非空),id2列包含空值, ?...前三个均为表数据总量,第四个SQL结果是99999,仅包含非空记录数据量,说明若使用count(允许空值的列),则统计的是非空记录的总数,空值记录不会统计,这可能和业务上的用意不同。...其实这无论id2是否包含空值,使用count(id2)均会使用全表扫描,因此即使语义上使用count(id2)和前三个SQL一致,这种执行计划的效率也是最低的,这张测试表的字段设置和数据量不很夸张,因此不很明显...总结: 11g下,通过实验结论,说明了count()、count(1)和count(主键索引字段)其实都是执行的count(),而且会选择索引的FFS扫描方式,count(包含空值的列)这种方式一方面会使用全表扫描
大佬们,如何把某一列中包含某个值的所在行给删除?比方说把包含电力这两个字的行给删除。...二、实现过程 这里【莫生气】给了一个思路和代码: # 删除Column1中包含'cherry'的行 df = df[~df['Column1'].str.contains('电力')] 经过点拨,顺利地解决了粉丝的问题...后来粉丝增加了难度,问题如下:但如果我同时要想删除包含电力与电梯,这两个关键的,又该怎么办呢? 这里【莫生气】和【FANG.J】继续给出了答案,可以看看上面的这个写法,中间加个&符号即可。
mongo官网:http://www.mongodb.org/ 工作中使用到Mongo,可是没有系统的学习研究过Mongo,仅对工作过程中,在Mongo的使用过程中的一些知识点做一下记录,并随时补充,达到总结备忘的目的...() db.view_view.find({_id:”521842″}).count() Distinct db.view_view.distinct(“_id”) db.view_view.distinct...(“view”) view是个数组,会把每一个数组的元素都distinct一下 Group db.invoke_stat.group({ key:{ip:true}, cond:{...cond:是要过滤的查询条件 reduce:处理函数 initial:返回列的初始值 finalize:对reduce的结果进行进一步处理,比方格式化 MapReduce db.invoke_stat.mapReduce...,但会影响性能;採用javascript对象,性能较高,但仅仅能传递50万个不同的key值; verbos布尔,默认true,显示具体的时间统计信息。
查询当前集合中的某列去重后的数据 db.user.distinct("name"); 以上会过滤掉 name 中的相同数据 类似 SELECT DISTINCT name FROM user; (3...查询 name 中包含 mongo 的数据,多用于模糊查询搜索 db.user.find({name: /mongo/}); 类似 SELECT* FROM user WHERE name LIKE '...查询 name 中以 mongo 开头的数据 db.user.find({name: /^mongo/}); 类似 SELECT* FROM user WHERE name LIKE 'mongo%';...按照列排序 1 升序 -1 降序 升序:db.user.find().sort({age: 1}); 降序:db.user.find().sort({age: -1}); (14)....查询在 5-10 之间的数据 db.user.find().limit(10).skip(5); 可用于分页,limit 是页大小,skip 是第几页乘以页大小的值 类似SELECT * FROM user
(Redis包含了其他功能) 图存储 Neo4JFlockDB 图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。...{key:{$exist:1}} //取出key列存在的值。...//直接用where语句,二进制转为JS运算,较慢 find()方法增强 db.collection.find(query,{要取出的列:1,不需要的列:0}) db.collection.find...db.collection.remove(query,[justone]) //如不指定query,全部删除;[justone]默认为false意思是查询到多个,但只删一个。...update语句 db.collection.update(query,{key:newvalue}) //注意:新值会覆盖旧值,即数据只剩下语句中定义的key db.collection.update
2、查询去掉后的当前聚集集合中的某列的重复数据 db.userInfo.distinct("name"); 会过滤掉 name 中的相同数据 相当于: select distict name from...= 25; 10、查询 name 中包含 mongo 的数据 模糊查询用于搜索 db.userInfo.find({name: /mongo/}); 相当于: select * from userInfo...where name like '%mongo%'; 11、查询 name 中以 mongo 开头的 db.userInfo.find({name: /^mongo/}); 相当于: select...* from userInfo where name like 'mongo%'; 12、查询 name 中以 mongo 结尾的 db.userInfo.find({name: /mongo$/})...; 相当于: select * from userInfo where name like ‘%mongo’; 模糊查询语法:{ : /pattern/ } 其中options值可以为: i -- 不区分大小写
查询去掉后的当前聚集集合中的某列的重复数据 db.userInfo.distinct("name");会过滤掉name中的相同数据,相当于:select distict name from userInfo...: 26}}); 查询name中包含 mongo的数据 db.userInfo.find({name: /mongo/}); 查询name中以mongo开头的 db.userInfo.find({name...: /^mongo/}); 查询指定列name、age数据 db.userInfo.find({}, {name: 1, age: 1});当然name也可以用true或false,当用ture的情况下河...name:1效果一样,如果用false就是排除name,显示name以外的列信息。...) db.users.find().skip(10).limit(5).count(true); 按照某列进行排序 db.userInfo.find({sex: {$exists: true}}).count
打开另一个终端,并确保你在MongoDB的bin目录,输入如下命令. $ ....BSON被比作二进制的交换格式,如同Protocol Buffers,但BSON比它更“schema-less”,非常好的灵活性但空间占用稍微大一点。 BSON有以下三个特点: 1....2、查询去掉后的当前聚集集合中的某列的重复数据 代码如下: db.userInfo.distinct("name"); 会过滤掉name中的相同数据 相当于:select distict name from...({age: {$gte: 23, $lte:26}}); 9、查询name中包含 mongo的数据 代码如下: db.userInfo.find({name: /mongo/}); //相当于%%...name: /^mongo/}); select * from userInfo where name like ‘mongo%'; 11、查询指定列name、age数据 代码如下: db.userInfo.find
MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行...().help() - show DBCursor help db.mycoll.count() db.mycoll.dataSize() db.mycoll.distinct...( key ) - eg. db.mycoll.distinct( 'x' ) db.mycoll.drop() drop the collection db.mycoll.dropIndex...,使用save会将原来的记录值进行覆盖实现记录更新。...实现远程连接 当你已经连接到一个远程的MongoDB数据库服务器(例如,通过mongo连接到192.168.0.184),现在想要在这个会话中连接另一个远程的数据库服务器(192.168.0.197),
键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型; u *模式自由:存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义; u *支持完全索引,包含内部对象。...因为Mongo已经包含对MapReduce引擎的内置支持。 u Mongo的BSON数据格式非常适合文档化格式的存储及查询。...u ◆高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。...由于日志的不可更新性的,往往只需APPEND即可,又因为对日志的操作往往只集中于一两列,所以最合适作为日志分析的还是列存储型的数据库,特别是像infobright那样的为数据仓库而设计的列存储数据库。...IDdesc db.test.distinct('name',{'ID':{$lt:20}}) select distinct(name) from testwhere ID<20 db.test.group
Mongo: db.user.find().sort({‘age’ : -1}) MySQL: SELECT DISTINCT(name) FROM user WHERE age > 20...Mongo: db.user.distinct(‘name’, {‘age’: {$lt : 20}}) MySQL: SELECT name, sum(marks) FROM user GROUP...$type查询$type值为bsonhttp://bsonspec.org/数 据的类型值 db.colls.find( { a : { $type : 2 } } ); // 匹配a为string...*corp/i } );//类似于SQL中like 内嵌对象查询 db.colls.find( { “author.name” : “joe” } ); 1.3.3版本及更高版本包含$not查询...中group by函数类似 distinct()返回不重复值 /*******************************************************************
foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1 MongoDB没有创建数据库的命令,但有类似的命令。...2、查询去掉后的当前聚集集合中的某列的重复数据 db.userInfo.distinct("name"); 会过滤掉name中的相同数据 相当于:select distict name from userInfo...: {$lte: 25}}); 8、查询age >= 23 并且 age <= 26 db.userInfo.find({age: {$gte: 23, $lte: 26}}); 9、查询name中包含...mongo的数据 db.userInfo.find({name: /mongo/}); //相当于%% select * from userInfo where name like ‘%mongo%'...; 10、查询name中以mongo开头的 db.userInfo.find({name: /^mongo/}); select * from userInfo where name like ‘mongo
Mongo DB 很好的实现了面向对象的思想(OO 思想),在 Mongo DB 中 每一条记录都是一个 Document 对象。...foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1 MongoDB没有创建数据库的命令,但有类似的命令。...2、查询去掉后的当前聚集集合中的某列的重复数据 db.userInfo.distinct("name"); 会过滤掉name中的相同数据 相当于:select distict name from userInfo...lte: 26}}); 9、查询name中包含 mongo的数据 db.userInfo.find({name: /mongo/}); //相当于%% select * from userInfo...where name like ‘mongo%’; 11、查询指定列name、age数据 db.userInfo.find({}, {name: 1, age: 1}); 相当于:select name
foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1 MongoDB没有创建数据库的命令,但有类似的命令。...2、查询去掉后的当前聚集集合中的某列的重复数据 db.userInfo.distinct("name"); 会过滤掉name中的相同数据 相当于:select distict name from userInfo...lte: 26}}); 9、查询name中包含 mongo的数据 db.userInfo.find({name: /mongo/}); //相当于%% select * from userInfo...where name like ‘%mongo%’; 10、查询name中以mongo开头的 db.userInfo.find({name: /^mongo/}); select * from userInfo...where name like ‘mongo%’; 11、查询指定列name、age数据 db.userInfo.find({}, {name: 1, age: 1}); 相当于:select name
db.runCommand({ "getLastError":1, "w":"majority" }) 可以指定wtimeout的值设置超时时间,如果这个超过这个时间还没有返回,就会返回失败...几乎所有数据库都能进行手动分片,但mongo支持自动分片,可以使数据库架构对应用程序不可见,也可以简化系统管理。对应用来说,和使用单机mongo服务器一样。...创建散列片键,首先要创建散列索引 db.users.ensureIndex({ "username":"hashed" }) 然后对集合分片 db.shardCollection("app.users...",{ "username":"hashed" }) 局限性: 不能使用enique选项 不能使用数组字段 浮点型的值会先呗取整,然后才会进入散列,所有1和1.99999会得到相同的散列值...GridFS的散列片段 GridFS集合通常非常适合做分片,因为它们包含大量的文件数据 在files_id字段上创建散列索引,则每个文件都会随机分发到集群中,但是一个文件只能呗包含在一个单一的块中,这时非常好的
MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。...MongoDB对应的术语和概念: SQL MongoDB 数据库(database) 数据库(database) 表(table) 集合(collection) 行(row) 文档(document或BSON) 列(...索引(index) 表关联(table join) 内嵌文档和链接(embedded document和linking) 主键(primary key) 主键(primary key) 使用指定的唯一列或列的组合作为主键...SQL MongoDB 说明 mysqld mongod 服务器守护进程 mysql mongo 客户端工具 mysqldump mysqldump 逻辑备份工具 mysql mongorestore...: {'$gt': 30}}).count() 获取表记录数 select DISTINCT last_name from users db.users.distinct('last_name') 去掉重复值
NoSQL数据库:Not only sql,指代非关系型数据库 优点:高可扩展性、分布式计算、低成本、灵活架构、半结构化数据、简化关联关系 缺点:没有标准化、有限查询、不直观 常见NoSQL数据库 列存储...ObjectID:文档id String:字符串 Boolean:布尔值 Integer:整数 Double:浮点数 Arrays:数组或者列表 Object:嵌入的文档 Null:空值 Timestamp...- 在cmd窗口输入命令启动数据库 mongod --dbpath D:\软件安装\MongoDB\data\db(此处是db的路径) 打开一个新的窗口输入命令mongo,用于数据库操作 2.2.Linux...({$or:[{age:{$gt:18}, {gender:”女”}]}) 范围运算符 $in:判断指定条件是否包含在某个范围内 $nin:判断指定条件是否不包含在某个范围内 #查询年龄在18或者20....distinct(“去重域名称”, {条件}) 查询数据列表中,所有的年龄分布情况 db.student.distinct(“age”, {}) 分页 #隔n个数据查询m个数据 db.hero.find
分片- 分片只是一个包含部分数据的数据库服务器。数据库中的项目通过范围或散列分割为分片,我们将在本指南的后面部分进行说明。为简单起见,我们将在示例中使用两个单服务器分片。...将“密码”替换为您选择的强密码: db.createUser({user: "mongo-admin", pwd: "password", roles:[{role: "root", db: "admin...两种最常见的分片策略是基于范围和基于散列的。 基于范围的分片根据分片键中的特定值范围划分数据。例如,您可能拥有一组客户和相关地址。如果使用基于范围的分片,则邮政编码可能是分片键的不错选择。...另一个需要考虑的重要因素是,您将运行哪种查询。当应用程序将执行许多复杂的读查询时, 在适当使用时, 基于范围的分片通常是更好的选择。...为简单起见,我们将使用基于散列的分片策略。 注意并不总是需要对数据库中的每个集合进行分片。根据每个集合包含的数据,将某些集合存储在一个位置可能更有效,因为对单个分片的数据库查询更快。
总所周知,MongoDB是一个NoSQL非数据库系统,即一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活...,由一组列标识的实体的集合对应于关系数据库表中的行。...e.g. db.mycoll.distinct( 'x' ) db.mycoll.drop() drop the collection db.mycoll.dropIndex(index) - e.g....({ "nInserted" : 1 }) 更新记录,使用save会将原来的记录值进行覆盖实现记录更新。...连接到192.168.0.184),现在想要在这个会话中连接另一个远程的数据库服务器(192.168.0.197),可以执行如下命令: var x = new Mongo('192.168.10.220
领取专属 10元无门槛券
手把手带您无忧上云