【转】Mongodb 学习笔记

Mongo DB

  • NoSql简介
  • MongoDB简介
  • 在Windows平台下安装Mongo
  • Mongo DB官方文档

MongoDB基本命令

  • MongoDB的默认安装路径为 C:\Program Files\MongoDB
  • 创建默认的数据库存放路径c:\data\db ,使用命令行把该路径关联到mongo上 C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe --dbpath c:\data\db,执行成功后数据库服务开启并开始监听

Mongo Shell

  • 运行 C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe 文件可以打开MongoDB Shell,它是一个自带的交互式的JavaScript shell,用来对MongoDB进行操作和管理的交互式环境
  • help 命令可以显示可使用的命令行

DB相关的操作

use tutorial

使用该命令会尝试连接名字为tutorial的数据库,如果不存在则创建。使用db.help()命令可以查看命令行帮助

show dbs

显示数据库的相关信息.

如果数据库相关的名字里包含了空格等字符,也可以用下面的命令

db["dbname"].find()
db.getCollection("dbname").find()

插入数据

通过下面的格式来添加数据:

db.restaurants.insert({"address" : {"street" : "2 Avenue","zipcode" : "10075","building" : "1480","coord" : [ -73.9557413, 40.7720266 ],},"borough" : "Manhattan","cuisine" : "Italian","grades" : [{"date" : ISODate("2014-10-01T00:00:00Z"),"grade" : "A","score" : 11},{"date" : ISODate("2014-01-16T00:00:00Z"),"grade" : "B","score" : 17}],"name" : "Vella","restaurant_id" : "41704620"}
)

查找数据

如果想要查找所有的数据,则:

db.collectionname.find()

指定条件:

指定field条件进行筛选,使用如下格式:

{ <field1>: <value1>, <field2>: <value2>, ... }

具体的例子:

db.restaurants.find( { "borough": "Manhattan" } )

大于,小于条件的筛选

db.restaurants.find( { "grades.score": { $gt: 30 } } )
db.restaurants.find( { "grades.score": { $lt: 10 } } )

AND和OR

db.restaurants.find( { "cuisine": "Italian", "address.zipcode": "10075" } )
db.restaurants.find( { $or: [ { "cuisine": "Italian" }, { "address.zipcode": "10075" } ] } )

排序

db.restaurants.find().sort( { "borough": 1, "address.zipcode": 1 } )

更新数据

下面的操作更新name为Juni的记录,用set操作来更新cuisine字段。用set操作来更新cuisine字段。用currentDate 操作符来更新lastModified字段:

db.restaurants.update(
{ "name" : "Juni" },
{$set: { "cuisine": "American (New)" },$currentDate: { "lastModified": true }
}
)

更新内嵌的数据:

db.restaurants.update({ "restaurant_id" : "41156888" },{ $set: { "address.street": "East 31st Street" } }
)

更新多条数据: 默认情况下update方法只更新一条数据。想要更新多条数据,使用multi option。

db.restaurants.update({ "address.zipcode": "10016", cuisine: "Other" },{$set: { cuisine: "Category To Be Determined" },$currentDate: { "lastModified": true }},{ multi: true}
)

替换某条记录 根据某个_id字段的信息,用新的记录替换就得

db.restaurants.update({ "restaurant_id" : "41704620" },{"name" : "Vella 2","address" : {"coord" : [ -73.9557413, 40.7720266 ],"building" : "1480","street" : "2 Avenue","zipcode" : "10075"}}
)

删除某条记录

删除符合某个条件的所有记录:

db.restaurants.remove( { "borough": "Manhattan" } )

只删除符合某个条件的一条记录,使用justOne选项:

db.restaurants.remove( { "borough": "Queens" }, { justOne: true } )

删除所有的记录:

db.restaurants.remove( { } )

删除一个表:

db.restaurants.drop()

聚合运算

聚合并累加

用group来通过某个关键字进行分组,在group来通过某个关键字进行分组,在group中,指定需要分组的关键字为_id。group通过fieldpath访问字段,字段名字需要以group通过fieldpath访问字段,字段名字需要以为前缀。$sum表示累加器,下面的语句表示计算字段为borough的各种情况的个数。

db.restaurants.aggregate([{ $group: { "_id": "$borough", "count": { $sum: 1 } } }]
);

输出结果为:

{ "_id" : "Staten Island", "count" : 969 }
{ "_id" : "Brooklyn", "count" : 6086 }
{ "_id" : "Manhattan", "count" : 10259 }
{ "_id" : "Queens", "count" : 5656 }
{ "_id" : "Bronx", "count" : 2338 }
{ "_id" : "Missing", "count" : 51 }

聚合并过滤

使用 $match 来过滤记录

db.restaurants.aggregate([{ $match: { "borough": "Queens", "cuisine": "Brazilian" } },{ $group: { "_id": "$address.zipcode" , "count": { $sum: 1 } } }]
);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于matlab的数字下变频器的设计与仿真应用,基于MATLAB的数字下变频器的设计与仿真应用.pdf...

基于MATLAB的数字下变频器的设计与仿真应用中国科技论文在线基于 Matlab 的数字下变频器的设计与仿真朱建新&#xff0c;沈树群*(北京邮电大学电子工程学院&#xff0c;北京 100876 )摘要&#xff1a;本文通过对数字变频器中关键技术的研究&#xff0c;给出了一种数字下变频器中…

【转】C#中[STAThread]的作用

C#的关键字 [STAThread]即 single-threaded apartment一&#xff1a; 每个Thread都有一个关于ApartmentState的属性&#xff0c;可以把它设置为&#xff1a;STA或者MTA&#xff0c;或者UNKNOWN。 当你想指定工程的启动窗口的时候&#xff0c;你需要在该窗口类中申明一个Main()方…

开始blog

我不是一个习惯用文字记录心情&#xff0c;事情的人。原因有三&#xff1a;1、没有毅力&#xff0c;小时候爱买精美的日记本&#xff0c;但总写几页就扔到一边了。2、从小就不爱写作文&#xff0c;所以文笔很差。有时翻开自己以前的日记&#xff0c;看了都想撕。3、字写得难看。…

【转】C#搭建Oauth2.0认证流程以及代码示例

对于一个普遍问题&#xff0c;必有对应的一个简洁优美的解决方案。这也许只是一厢情愿&#xff0c;因为根据宇宙法则&#xff0c;所有事物总归趋于混沌&#xff0c;而OAuth协议就是混沌中的产物&#xff0c;不管是1.0、1.0a还是2.0&#xff0c;单看版本号就让人神伤。 OAuth2.0…

语言差异引起的问题解决一例

在2004DevDay中&#xff0c;介绍的SmartClient技术以及其DataProtection技术&#xff0c;刚好目前的项目计划使用这样的技术。我是使用C#编码的&#xff0c;但IssueVission是用VB.Net写的&#xff0c;这难不倒我&#xff0c;毕竟BASIC还是自己的入门语言&#xff0c;VB和VBScri…

思想已经高过行动好多了

好几天过去了&#xff0c;依然没什么起色&#xff0c;今天搜索一下论坛上自己的老帖&#xff0c;整理出来做个见证&#xff0c;看着自己才开始ASP的时候问的问题&#xff0c;不知所云。现在就不一样了&#xff0c;哈哈……在听了些微软的讲座之后&#xff0c;对设计模式很感兴趣…

【转】自旋锁-SpinLock(.NET 4.0+)

短时间锁定的情况下&#xff0c;自旋锁&#xff08;spinlock&#xff09;更快。&#xff08;因为自旋锁本质上不会让线程休眠&#xff0c;而是一直循环尝试对资源访问&#xff0c;直到可用。所以自旋锁线程被阻塞时&#xff0c;不进行线程上下文切换&#xff0c;而是空转等待。…

php实现把es6转为es5,如何将ES6代码转化为ES5?

比方说下面这段代码&#xff1a;const navigator window.navigatornavigator.getUserMedia navigator.getUserMedia ||navigator.webkitGetUserMedia ||navigator.mozGetUserMedia ||navigator.msGetUserMediaconst AudioContext window.AudioContext ||window.webkitAudioC…

IBM收购Rational一年总结

IBM收购Rational一年总结 Clint Boulton[2003/12/26] 12月&#xff0c;又到年关总结的时候了&#xff0c;这次&#xff0c;是该IBM给这个耗资2.1亿美元的交易作评价了。 这次收购帮助IBM增加了在使用面向服务架构&#xff08;SOA&#xff09;发布Web Service方面增加了筹码。SO…

【转】.NET 自带的动态代理+Expression 实现AOP

下面代码&#xff08;摘抄之别处&#xff0c;原创在哪不知&#xff09;是采用TransparentProxy和RealProxy实现对象的动态代理。碍于其使用反射调用方法&#xff0c;所以就小试着将反射改成Expression以提高执行的效率。第15行就是原来代码中反射调用方法的关键代码。 1 using …

新来乍到,谢谢大家捧场

原来的blog是&#xff1a;http://www.blogcn.com/user9/szujobs/index.html由hBifTs 介绍&#xff0c;才得知有这么一个好地方。于是昨天把原来的文章迁移过来&#xff0c;其中一些文章有点旧了&#xff0c;写了有一阵子了。我的朋友都叫温少&#xff0c;毕业自深圳大学&#x…

【转】谈谈c#中异步编程模型的变迁**

大家在编程过程中都会用到一些异步编程的情况。在c#的BCL中&#xff0c;很多api都提供了异步方法&#xff0c;初学者可能对各种不同异步方法的使用感到迷惑&#xff0c;本文主要为大家梳理一下异步方法的变迁以及如何使用异步方法。 BeginXXX&#xff0c;EndXXX模式 在.Net F…

nextcloud php 版本,Nextcloud版本升级教程

捷径&#xff1a;cd /www/wwwroot/x.timeit.cnsudo -u www php updater/updater.phar进行命令更新&#xff0c;并使用occ进行更新系统&#xff0c;并关闭维护模式&#xff1a;sudo -u www php occ upgradesudo -u www php occ maintenance:mode --off注意:(命令需要在nextcloud…

剖析Jive的缓存机制

剖析Jive的缓存机制- - 作者&#xff1a;张磊 本文选自&#xff1a;开放系统世界 2003年06月06日Jive是一个广受欢迎的开放源码的论坛项目&#xff0c;虽然推出了很多年&#xff0c;但至今很多Java程序员还对它津津乐道。从框架结构上看&#xff0c;它采用了很多设计模式&#…

php统计在线时长,js统计网站运行时长

js统计网站运行时长第一种&#xff1a;网站function siteTime(){window.setTimeout("siteTime()", 1000);var seconds 1000var minutes seconds * 60var hours minutes * 60var days hours * 24var years days * 365var today new Date()var todayYear today.…

【转】细说.NET中的多线程 (四 使用锁进行同步)

通过锁来实现同步 排它锁主要用来保证&#xff0c;在一段时间内&#xff0c;只有一个线程可以访问某一段代码。两种主要类型的排它锁是lock和Mutex。Lock和Mutex相比构造起来更方便&#xff0c;运行的也更快。但是Mutex可以在同一个机器上的不同进程使用。 Monitor.Enter和Mo…

发现很多人的基础都不好

加了一些C#的qq群&#xff0c;有一次提了一个很简单的问题&#xff0c;关于abstract class的&#xff08;具体问题忘记了&#xff09;&#xff0c;很多人都搞不清楚。还有一些所谓在做项目的&#xff0c;只是拖些控件&#xff0c;做个界面&#xff08;界面还挺漂亮的&#xff0…

oracle ora-22288,向oracle的blob字段导入文件

在数据库主机上创建测试目录及文件$mkdir /test$cd /test$echo "Test Subject" >> subject.html$echo "test ok !" >> mail.html定义文件路径(都是数据库主机上的)&#xff0c;并授权$sqlplus user/passwdinstanceSQL>create or replace di…

【转】细说.NET中的多线程 (五 使用信号量进行同步)

上一节主要介绍了使用锁进行同步&#xff0c;本节主要介绍使用信号量进行同步 使用EventWaitHandle信号量进行同步 EventWaitHandle主要用于实现信号灯机制。信号灯主要用于通知等待的线程。主要有两种实现&#xff1a;AutoResetEvent和ManualResetEvent。 AutoResetEvent …

做自己喜欢的人

1&#xff09;首先做一个快乐的人 什么是成功&#xff1f; 有钱是不是成功&#xff1f;地位是不是成功&#xff1f; 成功就是实现自己有意义的既定的目标 为自己设定阶段性的目标&#xff0c;如果达成这些阶段性的目标就是成功 1)工作2)学习3&#xff09;家庭生活 三个方面的目…