Mongodb 学习总结《三》

MongoDB 插入文档

insert() 方法

要插入数据到 MongoDB 集合,需要使用 MongoDB 的 insert() 或 save() 方法。
语法

insert() 命令的基本语法如下:

db.COLLECTION_NAME.insert(document)
db.mycol.insert({
   _id: ObjectId(7df78ad8902c),
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'tutorials point',
   url: 'http://www.yiibai.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100
})

这里 mycol 是集合的名称,如前面的教程中创建。如果集合在数据库中不存在,那么MongoDB 将创建此集合,然后把它插入文档。

插入文档中,如果我们不指定_id参数,然后MongoDB 本文档分配一个独特的ObjectId。

_id 是12个字节的十六进制数,唯一一个集合中的每个文档。 12个字节被划分如下:

_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)

MongoDB 查询文档

find() 方法

要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法。
语法

基本的find()方法语法如下

db.COLLECTION_NAME.find()
 db.blogs.find()
{ "_id" : ObjectId("5540397f4e716b11a57fb9fc"), "time_stamp" : "2014-10-23-10-26", "body" : "l love python ,hello world", "tag" : "python", "title" : "my first blog" }
{ "_id" : ObjectId("554039ed4e716b11a57fb9fd"), "time_stamp" : "2014-9-24-11-05", "body" : "wellcome to tornado,you can enjoy it", "tag" : "tornado", "title" : "my second blog" }

pretty() 方法

结果显示在一个格式化的方式,可以使用 pretty() 方法.
语法:

db.mycol.find().pretty()
db.blogs.find().pretty()
{
    "_id" : ObjectId("5540397f4e716b11a57fb9fc"),
    "time_stamp" : "2014-10-23-10-26",
    "body" : "l love python ,hello world",
    "tag" : "python",
    "title" : "my first blog"
}
{
    "_id" : ObjectId("554039ed4e716b11a57fb9fd"),
    "time_stamp" : "2014-9-24-11-05",
    "body" : "wellcome to tornado,you can enjoy it",
    "tag" : "tornado",
    "title" : "my second blog"
}

除了find() 方法外,还有一个 findOne() 法,返回一个文件。

要查询文件的一些条件的基础上,可以使用下面的操作
操作 语法 例子 RDBMS 等同
Equality {<key>:<value>} db.mycol.find({"by":"tutorials point"}).pretty() where by = 'tutorials point'
Less Than {<key>:{$lt:<value>}} db.mycol.find({"likes":{$lt:50}}).pretty() where likes < 50
Less Than Equals {<key>:{$lte:<value>}} db.mycol.find({"likes":{$lte:50}}).pretty() where likes <= 50
Greater Than {<key>:{$gt:<value>}} db.mycol.find({"likes":{$gt:50}}).pretty() where likes > 50
Greater Than Equals {<key>:{$gte:<value>}} db.mycol.find({"likes":{$gte:50}}).pretty() where likes >= 50
Not Equals {<key>:{$ne:<value>}} db.mycol.find({"likes":{$ne:50}}).pretty() where likes != 50

AND 在MongoDB中用法

语法:

在 find() 方法,如果通过多个键分离’,’,那么 MongoDB 处理 AND 条件。AND 基本语法如下所示:

db.mycol.find({key1:value1, key2:value2}).pretty()
MongoDB中OR

语法:

OR条件的基础上要查询文件,需要使用$or关键字。OR 基本语法如下所示:

db.mycol.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

MongoDB 更新文档

MongoDB的 update() 和 save() 方法用于更新文档的集合。 update()方法更新现有的文档值,而替换现有的文档通过的文件中 save() 方法。

MongoDB Update() 方法

update()方法更新现有文档值。
语法:

update() 方法的基本语法如下

db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)

考虑以下数据mycol集合。

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}

下面的例子将设置新标题’MongoDB Overview’的文件,更新其标题是“New MongoDB Tutorial”


db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}})
db.mycol.find()
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"New MongoDB Tutorial"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Overview"}

MongoDB默认将只更新单一的文件,来更新多个你需要设置参数置’multi’ 为true

db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}},{multi:true})

MongoDB Save() 方法

save() 方法替换现有的文档和通过新的文档 save() 方法
语法

MongoDB 的 save() 方法的基本语法如下:

db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})

地址:http://www.yiibai.com/mongodb/mongodb_query_document.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值