当前位置: 首页 > 编程日记 > 正文

mongodb学习笔记6--杂项与补充

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1。适用场景:持久化缓存层,高效的时效性,用于对象和Json数据的存储,高伸缩性的场景,大尺寸,低价值的数据存储。
不适用:高度事务性的场景,复杂多表查询,传统商业智能应用。
2.保持mongodb开机自启动:echo "/usr/local/mongodb/bin/mongod--dbpath=/usr/local/mongodb/data" >>/etc/rc.local
3.杀掉进程 pkill或者kilall
4.数据类型:null:表示空值或者不存在{“name":null}  布尔类型: {“name":true} ,32位整数:将被转义位64位浮点数,
64位整数:同上。64位浮点数:默认类型如 {“money":12.02} 字符串类型: {“name":‘各地分公司’} ,
ObjectId类型:文档唯一的12位id,由时间戳,机器吗  pid  计数器组成。
日期:
{“one":new Date()}  正则:{“name":/ho/i} 采用JS的正则语法
代码:{“name":function(){}}  数组:{“x":["a","b",["c","d"]]} 值可以数组,也可以在数组嵌套数组
5. db.blog.insert和db.blog.save的区别:当插入一条主键相同的数据,insert会报错,不允许插入,而save则会更新也就是覆盖原来的值
6.用JS循环插入数据 举例:
 
for(i=1;i<=20;i++){
... db.blog.insert({"name":"user"+i,age:i})
... }
输入it显示更多。
7.注意count的用法:如集合有10条数据,db.blog. count()输出10。如果前面加条件,例:db.blog.sort({"age":-1}).skip(2).limit(2).count();按理应该结果是2,但实际是10,因为count忽略了前面的条件,count有两个参数,1代表不忽略0代表忽略,默认是0.
注意sort的位置:放在前面和后面结果是不同的,表示先排序后执行条件还是先执行条件后排序。
8.查询name为user1并且age为1的数据: db.blog.find({"name":"user1","age":1})
9.or和nor的用法:
查询  name为user1或者age为1的数据: db.blog.find({$or:[{"name":"user1"},{"age":10}]})
结果: { "_id" : ObjectId("51c072290adf859a09bec715"), "name" : "user1", "age" : 1 }
> db.blog.find({$or:[{"name":"user1"},{"age":10}]})
{ "_id" : ObjectId("51c072290adf859a09bec715"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("51c072290adf859a09bec71e"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("51c1b114cf61cd895f843543"), "name" : "user1", "age" : 21 }
查询  name不为user1或者age不为1的数据: db.blog.find({$nor:[{"name":"user1"},{"age":10}]})
查询  name不为user1或者name不为user2的数据: db.blog.find({$nor:[{"name":"user1"},{"name":"user2"}]})
10.distinct过滤重复记录如: db.blog.distinct("name")
11.数组内对象查找 比如查找post里面tit为1的数据:  db.ceshi.find({"post.tit":1})
结果: { "_id" : ObjectId("51c1bb601a7338d22dcd6010"), "name" : "user1", "post" : [ { "tit" : 1 }, { "tit" : 2 }, { "tit" : 3 } ] }
另一种方法:$elemMatch,用法如: db.ceshi.find({"post":{$elemMatch:{"tit":1}}})结果如上.
12.游标:
 比如X=db.blog.find()回车将得到数据就集合所有记录
定义变量x:var x=db.blog.find();回车输入x.hasNext()判断是否有下一条记录返回true或者false.如果返回true说明有数据,回车输入x.next()则输出第一条记录,继续回车输入x.next()输出下一条,直到x.haveNext返回false,如果继续x.next()将报错.
13.Null值查询:比如查询一条age为null的记录,按原先的思路 db.blog.find({"age":null})这样会把不存在age的记录也查出来,显然不对.
那么如何查询呢,有这么几种方法:1,  db.blog.find({"age":{$exists:1,$in:[null]}})查询age存在的然后筛选出值为null的
2.  db.blog.find({"age":{$type:10}})查出age值类型为10的记录
14.有如下有一条数据:  { "_id" : ObjectId("51c1c8121a7338d22dcd6013"), "name" : "user1", "tiezi" : [ { "title" : "124" }, { "title" : "34543" }, { "title" : "345345" } ] }
如何查出name为user1的前两篇帖子呢可以用$slice方法: db.ceshi.find({"name":"user1"},{tiezi:{$slice:2}})
后两篇: db.ceshi.find({"name":"user1"},{tiezi:{$slice:-2}})

转载于:https://my.oschina.net/u/143473/blog/138997

相关文章:

GraphSAGE:我寻思GCN也没我厉害!

作者 | 郭必扬来源 | SimpleAI&#xff08;ID:SimpleAI_1&#xff09;众所周知&#xff0c;2017年ICLR出产的GCN现在是多么地热门&#xff0c;仿佛自己就是图神经网络的名片。然而&#xff0c;在GCN的风头中&#xff0c;很多人忽略了GCN本身的巨大局限——Transductive Learnin…

CxImage的编译及简单使用举例

1、 从http://sourceforge.net/projects/cximage/下载最新的CxImage 702源码&#xff1b; 2、 解压缩后&#xff0c;以管理员身份打开CxImageFull_vc10.sln工程&#xff0c;在编译之前先将每个工程属性的Character Set由原先的Use Unicode Character Set改为Use Multi-ByteC…

如何使用好android的可访问性服务(Accessibility Services)

原文&#xff1a;http://android.eoe.cn/topic/android_sdk * 主题* Manifest声明和权限 可访问性服务声明 可访问性服务配置 AccessibilityService方法 获得事件细节 示例代码 主要的类*AccessibilityService AccessibilityServiceInfo AccessibilityEvent AccessibilityReco…

自动驾驶人的福音!Lyft公开Level 5部署平台Flexo细节

作者 | Mathias Gug等&#xff0c;Lyft Level 5 软件工程师译者 | Lucy编辑 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导读&#xff1a;经过一年半的 bootstrapping&#xff08;一种再抽样统计方法&#xff09;&#xff0c;Lyft 让 Level 5 实现区分非常…

Cygwin的安装及在Android jni中的简单使用举例

Cygwin是一个在windows平台上运行的类UNIX模拟环境&#xff0c;是cygnussolutions公司开发的自由软件。Cygwin是许多自由软件的集合&#xff0c;Cygwin的主要目的是通过重新编译&#xff0c;将POSIX系统上的软件移植到Windows上。Cygwin包括了一套库&#xff0c;该库在win32系统…

university, school, college, department, institute的区别

这些个词没有太大区别&#xff0c;有时候有些词是可以通用的&#xff0c;而有些用法则是随着地域时间的不同而变迁。一般说来&#xff0c;college译作“学院”&#xff0c;它是university &#xff08;综合性大学&#xff09;的一个组成部分&#xff0c;例如&#xff0c;一所综…

XML简介及举例

可扩展标记语言(eXtensibleMarkup Language&#xff0c;简称XML)&#xff0c;是一种标记语言。标记指计算机所能理解的信息符号&#xff0c;通过此种标记&#xff0c;计算机之间可以处理包含各种信息的文章等。如何定义这些标记&#xff0c;既可以选择国际通用的标记语言&#…

关于事务的传播特性和隔离级别的问题

REQUIRED&#xff1a;业务方法需要在一个事务中运行。如果方法运行时&#xff0c;已经处在一个事务中&#xff0c;那么加入到该事务&#xff0c;否则为自己创建一个新的事务。 NOT_SUPPORTED&#xff1a;声明方法不需要事务。如果方法没有关联到一个事务&#xff0c;容器不会为…

[Big Data - Kafka] kafka学习笔记:知识点整理

一、为什么需要消息系统 1.解耦&#xff1a; 允许你独立的扩展或修改两边的处理过程&#xff0c;只要确保它们遵守同样的接口约束。 2.冗余&#xff1a;消息队列把数据进行持久化直到它们已经被完全处理&#xff0c;通过这一方式规避了数据丢失风险。许多消息队列所采用的&q…

自然语言处理十问!独家福利

最近&#xff0c;NLP 圈简直不要太热闹&#xff01;预训练模型频频刷新榜单&#xff0c;让一众研究者、开发者“痛并快乐着”。自 2018 年 10 月&#xff0c;Google 提出 BERT 以来&#xff0c;NLP 领域预训练模型的发展仿佛坐上了火箭&#xff0c;完全控制不住。BERT 出世前&a…

BERT的成功是否依赖于虚假相关的统计线索?

作者 | 李理来源 | 个人博客导读&#xff1a;本文介绍论文Probing Neural Network Comprehension of Natural Language Arguments&#xff0c;讨论BERT在ACRT任务下的成绩是否依赖虚假的统计线索&#xff0c;同时分享一些个人对目前机器学习尤其是自然语言理解的看法。目录论文…

【电子基础】模拟电路问答

模拟电路基础知识问答整理 mystery 1、温度对半导体材料的导电性能有什么影响? 答&#xff1a;温度对半导体的导电性能有很大影响。当温度升高时&#xff0c;半导体材料内的自由电子和空穴数量迅速增加&#xff0c;半导体的导电性能将迅速提高。 2、什么是本征半导体和杂质半导…

XML解析简介及Xerces-C++简单使用举例

XML是由World WideWeb联盟(W3C)定义的元语言。它已经成为一种通用的数据交换格式&#xff0c;它的平台无关性&#xff0c;语言无关性&#xff0c;系统无关性&#xff0c;给数据集成与交互带来了极大的方便。XML在不同的语言里解析方式都是一样的&#xff0c;只不过实现的语法不…

[干货]Kaggle热门 | 用一个框架解决所有机器学习难题

新智元推荐 来源&#xff1a;LinkedIn 作者&#xff1a;Abhishek Thakur 译者&#xff1a;弗格森 【新智元导读】本文是数据科学家Abhishek Thakur发表的Kaggle热门文章。作者总结了自己参加100多场机器学习竞赛的经验&#xff0c;主要从模型框架方面阐述了机器学习过程中可能会…

gtest简介及简单使用

gtest是一个跨平台(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)的C测试框架&#xff0c;有google公司发布。gtest测试框架是在不同平台上为编写C测试而生成的。从http://code.google.com/p/googletest/downloads/detail?namegtest-1.7.0.zip&can2&q下…

新浪微博推广网站的一些实践体会

本以为微博推广很难&#xff0c;每天都要刷粉刷内容的&#xff0c;也本以为做微博推广也很简单&#xff0c;一不卖产品、二不卖服务的&#xff0c;目的单纯灵活性强些&#xff0c;做了之后才发现都不是那么回事&#xff0c;微博虽然也过了“火了”&#xff0c;但新媒体还真是不…

AI和大数据如何落地智能城市?京东城市这6篇论文必读 | KDD 2019

来源 | 京东城市&#xff08;ID: icity-jd&#xff09;作为世界数据挖掘领域的最高级别的学术会议&#xff0c;ACM SIGKDD&#xff08;国际数据挖掘与知识发现大会&#xff0c;简称 KDD&#xff09;将于 2019 年 8 月 4 日—8 日在美国阿拉斯加州安克雷奇市举行。自 1995 年以来…

OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so

OSError: Could not find library geos_c or load any of its variants [libgeos_c.so.1, libgeos_c.so 解决&#xff1a; sudo vim /etc/ld.so.conf 添加&#xff1a;/opt/source/geos-3.5.0/build/lib sudo ldconfig

五分钟搭建BERT服务,实现1000+QPS​,这个Service-Streamer做到了

作者 | 刘欣简介&#xff1a;刘欣&#xff0c;Meteorix&#xff0c;毕业于华中科技大学&#xff0c;前网易游戏技术总监&#xff0c;现任香侬科技算法架构负责人。之前专注游戏引擎工具架构和自动化领域&#xff0c;2018年在GDC和GoogleIO开源Airtest自动化框架&#xff0c;广泛…

Nagios+pnp4nagios+rrdtool 安装配置为nagios添加自定义插件(三)

nagios博大精深&#xff0c;可以以shell、perl等语句为nagios写插件&#xff0c;来满足自己监控的需要。本文写mysql中tps、qps的插件&#xff0c;并把收集到的结果以图形形式展现出来&#xff0c;这样输出的结果就有一定的要求了。 编写插件tps qps check_qps 插件如下内容 #…

OpenSSL简介及在Windows、Linux、Mac系统上的编译步骤

OpenSSL介绍&#xff1a;OpenSSL是一个强大的安全套接字层密码库&#xff0c;囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议&#xff0c;并提供丰富的应用程序供测试或其它目的使用。 SSL是SecureSockets Layer(安全套接层协议)的缩写&#xff0c;可以在Interne…

Guava Cache本地缓存在 Spring Boot应用中的实践

概述 在如今高并发的互联网应用中&#xff0c;缓存的地位举足轻重&#xff0c;对提升程序性能帮助不小。而 3.x开始的 Spring也引入了对 Cache的支持&#xff0c;那对于如今发展得如火如荼的 Spring Boot来说自然也是支持缓存特性的。当然 Spring Boot默认使用的是 SimpleCache…

Windows 8.1 Preview(Windows Blue)预览版简体中文官方下载(ISO完整版镜像)

Windows 8.1是微软继Windows 8以来的又一全新力作&#xff0c;又名Windows Blue&#xff08;视窗蓝&#xff0c;专注蓝屏30年&#xff09;&#xff0c;个人觉得Win8还是比较流畅的但大众始终觉得还是有很多需要改进或者改善的&#xff0c;如今微软为了迎合大众需求对Win8进行升…

Linux下编辑器vi/vim的使用介绍

vi编辑器是所有Unix及Linux系统下标准的编辑器。对Unix及Linux系统的任何版本&#xff0c;vi编辑器是完全相同的。 基本上vi可以分为三种状态&#xff0c;分别是命令模式(commandmode)、插入模式(insert mode)和底行模式(last line mode)&#xff0c;各模式的功能为&#xff1…

Clojure程序设计

《Clojure程序设计》基本信息作者&#xff1a; (美)Stuart Halloway Aaron Bedra [作译者介绍]出版社&#xff1a;人民邮电出版社ISBN&#xff1a;9787115308474上架时间&#xff1a;2013-3-1出版日期&#xff1a;2013 年3月开本&#xff1a;16开页码&#xff1a;230版次&#…

重磅!AI Top 30+案例评选正式启动

2019 年&#xff0c;人工智能应用落地的重要性正在逐步得到验证&#xff0c;这是关乎企业生死攸关的一环。科技巨头、AI 独角兽还有起于草莽的创业公司在各领域进行着一场多方角斗。进行平台布局的科技巨头们&#xff0c;正在加快承载企业部署 AI 应用的步伐&#xff0c;曾经无…

直播回顾 | 关于Apollo 5.0控制在环仿真技术的分享

Apollo 用于模型验证和测试的基于 Web 的仿真平台 Dreamland 已经更新到能使用更强大的场景编辑器和环控制模拟。基于 Apollo 流水线和机器学习的动力学模型&#xff0c;复杂度较高&#xff0c;同时基于 AI 的全景数据建模&#xff0c;模型精细度高&#xff0c;误差比传统方式可…

eclipes 安装 pytdev,svn,插件

1&#xff0c; python pydevhttp://pydev.org/updates2, svnhttp://subclipse.tigris.org/update3, 推荐http://subclipse.tigris.org/update_1.10.x 转载于:https://blog.51cto.com/swq499809608/1240873

FFmpeg简介及在vc2010下编译步骤

FFmpeg是一个开源的多媒体库&#xff0c;最新版本是2.4.3&#xff0c;它的License是LGPL或GPL。FFmpeg可以用来记录、转换数字音频、视频&#xff0c;并能将其转换为流的开源计算机程序。它包括了音/视频编码库libavcodec。FFmpeg是在Linux下开发出来的&#xff0c;但它可以在包…

医院六级电子病历建设思路及要点

产生背景 在医院电子病历信息化发展的过程中&#xff0c;先后经历了纸质病历、电子病历、结构化电子病历以及具有全医疗过程管理能力的电子病历四个阶段。临床业务需求质量的逐步提升&#xff0c;标准规范的逐步细化&#xff0c;互联网战略的落地实施&#xff0c;无疑对目前电子…