mongodb常用语句:一

db.getCollection("c1").find()

db.institution.find()

db.c1.insert([
    {name:'z1',age:3},
    {name:'z2',age:4},
    {name:'z3',age:5}
])

for (var i = 1;i < 10;i++)[
    print(i)
]


for (var i = 1;i<=20;i++)[
    db.c1.insert([{age:i}])
]

db.c1.find({})

--第三个参数为false 找不到就不管,为true 找不到就插入
db.c1.update({},{$set:{age:10}},false,false) --最后一个参数false 只修改一条数据
db.c1.update({},{$set:{age:10}},false,true)


#D删
语法:db.集合名.remove(条件,是否删除一条)
注意:是否删除一条true 是,false 删除所有

db.c1.remove({},true)
db.c1.remove({},false)

总结:CURD增删改查标识

增 create
    db.集合名.insert(json数据)

删 delete
    db.集合名.remove(条件,[是否删除一条或多条,true,false])
    
改 update
    db.集合名.update(条件,[是否新增,是否修改])
    升级语法 db.集合名.update(条件,[修改器:{键:值}])
查 read 
    db.集合名.find(条件,[查询的列])
    
    
    

show dbs
use runoob
db.dropDatabase()
db.collection.drop()

use runoob   #switched to db runoob


db.createCollection("runoob")     # 先创建集合,类似数据库中的表
show tables             # show collections 命令会更加准确点

db.runoob.drop()   #true

show tables   #空


db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
   6142800, max : 10000 } )
#capped 是否创建固定大小的集合  size:整个集合空间大小 6142800 B      max:文档最大个数为 10000 个。
     
     
db.mycol2.insert({"name" : "菜鸟教程"})

db.mycol2.find()


#MongoDB 中使用 drop() 方法来删除集合。
db.mycol2.drop()

#查找所有集合
show collections


#以下文档可以存储在 MongoDB 的 runoob 数据库 的 col 集合中:
db.col.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})


#我们也可以将数据定义为一个变量
document=({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
});

#执行插入操作:
db.col.insert(document)

db.col.find()

#MongoDB 使用 update() 和 save() 方法来更新集合中的文档

#update() 方法用于更新已存在的文档

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。

#实例
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})

db.col.find().pretty()

#以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})


#save() 方法通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)
参数说明:

document : 文档数据。
writeConcern :可选,抛出异常的级别。


#实例  这个问题还需要在看看
db.col.save({
    "_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "Runoob",
    "url" : "http://www.runoob.com",
    "tags" : [
            "mongodb",
            "NoSQL"
    ],
    "likes" : 110
})


#MongoDB remove() 函数是用来移除集合中的数据。

db.col.remove({"by":"菜鸟教程"})

db.col.find()

#MongoDB 与 RDBMS Where 语句比较
如#果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

操作    格式    范例    RDBMS中的类似语句
等于    {<key>:<value>}    db.col.find({"by":"菜鸟教程"}).pretty()                                    where by = '菜鸟教程'
小于    {<key>:{$lt:<value>}}    db.col.find({"likes":{$lt:50}}).pretty()                    where likes < 50
小于或等于    {<key>:{$lte:<value>}}    db.col.find({"likes":{$lte:50}}).pretty()    where likes <= 50
大于    {<key>:{$gt:<value>}}    db.col.find({"likes":{$gt:50}}).pretty()                    where likes > 50
大于或等于    {<key>:{$gte:<value>}}    db.col.find({"likes":{$gte:50}}).pretty()    where likes >= 50
不等于    {<key>:{$ne:<value>}}    db.col.find({"likes":{$ne:50}}).pretty()                where likes != 50

#MongoDB AND 条件
#MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。
db.col.find({key1:value1, key2:value2}).pretty()

#MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

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


#实例
db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()


#AND 和 OR 联合使用
#以下实例演示了 AND 和 OR 联合使用,类似常规 SQL 语句为: 'where likes>50 AND (by = '菜鸟教程' OR title = 'MongoDB 教程')'

db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

#测试比较运算符
db.col.remove({})

db.col.insert({
    title: 'PHP 教程', 
    description: 'PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['php'],
    likes: 200
})

db.col.insert({title: 'Java 教程', 
    description: 'Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['java'],
    likes: 150
})

db.col.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb'],
    likes: 100
})


db.col.find()

db.col.find({likes : {$gt : 100}})   #Select * from col where likes > 100;

db.col.find({likes : {$gte : 100}})   #Select * from col where likes >= 100;

db.col.find({likes : {$lt : 150}})      #Select * from col where likes < 150;

db.col.find({likes : {$lte : 150}})        #Select * from col where likes <= 150;

db.col.find({likes : {$lt :200, $gt : 100}})          #Select * from col where 100<likes < 200;

#mongodb  数据类型
类型    数字    备注
Double    1     
String    2     
Object    3     
Array    4     
Binary data    5     
Undefined    6    已废弃。
Object id    7     
Boolean    8     
Date    9     
Null    10     
Regular Expression    11     
JavaScript    13     
Symbol    14     
JavaScript (with scope)    15     
32-bit integer    16     
Timestamp    17     
64-bit integer    18     
Min key    255    Query with -1.
Max key    127     

#title 类型是string的数据
db.col.find({"title":{$type:2}})

#和前者是等价关系
db.col.find({"title":{$type:"string"}})


#MongoDB Limit() 方法  类似sql 分页查询
db.col.find().limit(2);  

#单个字段的查询
db.col.find({},{"title":1,_id:0}).limit(2)


#在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。

db.col.find({},{"title":1,_id:0}).sort({"like":-1})


#MongoDB 索引
#MongoDB使用 createIndex() 方法来创建索引。

db.col.ensureindex({"like":1})


#MongoDB 聚合

#MongoDB中聚合的方法使用aggregate()。

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值