mongodb学习4-简单的CRUD

这里只以shell里的命令来演示,转换为代码其实就只是以BSON的文档来实现而已.

以local数据库为例,创建多个集合,以具体的实例来演示效果。

use local;

(一) insert命令

mongodb的shell可以用js的语法,定义一个对象post,

post = {"title":"post1",

"content":"hello mongo",

"time":new Date()}

查看post :post

db.blog.insert(post);// 将post对象写进blog集合,如果一开始这个集合不存在,会自动创建。

db.blog.find();//这里就会看到刚写入的对象; 或者使用db.blog.findOne() /*大小写敏感*/ 查看符合条件的第一条

 

以上的步骤也可以合并为一句

db.blog.insert(

{"title":"post1",

"content":"hello mongo",

"time":new Date()}

)


mongodb不提供事务操作,

(二)find

db.blog.find()//查找所有 默认显示20条 根据提示输入it可以查看更多。

条件查询db.blog.find({"title":"post1","content":"hello mongo"})

日期比较db.blog.find({"time":{"$gte":new Date("2014-11-18")}})  注意日期的命名方式和关键字new

常用的有$gt $gte $lt $lte $in $ne等比较符 ,还提供正则表达式 /hello/

(三) update

首要注意的地方:db.blog.update({"title":"post1"},{"content":"hello world"})这句并不是将blog集合里的这条记录的内容改成hello world,而是把整条文档(文档对应的关系数据库中的一行记录,这里叫文档改为"content":"hello world",不妨执行一下用find查看结果。


要达到上述效果 正确的做法是:db.blog.update({"title":"post1"},{$set:{"content":"hello world"}})

由于mongodb并没有固定结构,所以当set后跟的字段不存在的时候会自动创建!

举例来说db.blog.update({"title":"post1"},{$set:{"comments":["nice","cool"]}})

再查看就会发现多了一个comment字段了,该字段类型为数组,并且数组中也可以有多种类型。


除了$set还有个常用的修改符$inc (increase)

这里换个集合和案例来演示:

db.games.insert({"user":"ben","score":0})

db.games.insert({"user":"lily","score":0})

这时我们有了2个用户和得分记录:

db.games.update({"user":"ben"},{$inc:{"score":10}})
db.games.update({"user":"lily"},{$inc:{"score":20}})

find查看一下 看到得分都变了,如果是要减小 直接改为负数就可以了,同样的这里如果字段不存在的时候也会新建的。


在这里mongodb还有一个与传统关系型数据库不一致的地方,演示如下

db.games.insert({"user":"lily","score":0})//再插入一条user为lily的记录,由于主键是objectid所以并不冲突

db.games.update({"user":"lily"},{$inc:{"score":50}})//执行更新 

查看结果,发现只有第一条lily的得分改变了,

如果是要全部更新的话: db.games.update({"user":"lily"},{$inc:{"score":100}},{multi:true})


(四)remove

db.games.remove({})//删除全部,

条件删除中的条件与update的条件写法一致,不再赘述,

需要注意的是,如果是删除集合全部内容,可以用db.games.drop()来删除整个集合包括建立的所有索引,速度更快

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值