MongoDB 基础

Posted longxd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 基础相关的知识,希望对你有一定的参考价值。

 

MongoDB 是一个基于分布式 文件存储的NoSQL数据库



插入 :
db.student.insert( {name:\'jianeng\',age:18} )

插入多条数据: [ { } ,{ } ]

db.student.insert([
{\'name\':\'张三\',age:18,sex:\'男\' },
{\'name\':\'李四\',age:20,sex:\'女\' },
{\'name\':\'王五\',age:30,sex:\'女\' }
])

查找: find(条件,字段)
db.student.find({}) / select * from table
db.student.find( )


# _id 默认输出, _id:0 / select name,age from table where name=\'jianeng\'
db.student.find({name:\'jianeng\'},{name:1,age:1,_id:0})


###### 更新 update ({条件},{新的值},{multi:true } ) ,默认之更新一条

# 全文档更新
db.student.update({name:\'haha\'},{xx:\'yyy\'})


# 指定字段更新 { $set:{} }
db.student.update({name:\'luck\'},{$set:{name:\'qwe123\',age:38}})

# 修改多条数据
db.student.update( {name:\'jianeng\'} ,{$set:{sex:\'xxxx\'}}, {multi:true} )

 

####### 删除 remove(条件,justOne)
#全删
db.student.remove({name:\'jianeng\'})

# 只删一条
db.student.remove({name:\'jianeng\'},{justOne:true})

 


###

1. pip install pymongo

2. 查看 配置文件
sudo vim /etc/mongodb.conf

i ,找到11行
如果 bind_id =127.0.0.1
修改为 : bind_id =0.0.0.0 (用字母上面的数字键盘)

esc
:wq

/etc/init.d/mongodb restart


3. 端口转发 : 27017

 


 


## 插入
db.student.insert({\'name\':\'赵六\',age:38,sex:\'男\'})


db.student.insert([
{\'name\':\'lucky\',age:38,sex:\'female\'},
{\'name\':\'李四\',age:33,sex:\'女\'},
{\'name\':\'赵六\',age:35,sex:\'男\'},
])


## find({条件},{字段} )

db.student.find({name:\'张三\'})

db.student.find({name:\'张三\'},{name:1,sex:1,_id:0})


## update({条件},{新的值},{multi:true})

# 全文档
db.student.update({name:\'aa\'},{xx:\'yyy\'} )

# 指定字段
db.student.update({name:\'bb\'},{$set:{sex:\'男\'}} )

# 指定字段 并 全部更新
db.student.update({age:18},{$set:{age:38}},{multi:true})

 

## remove({条件},{justOne})
db.student.remove({age:28})
db.student.remove({age:36},{justOne:true})

 


find( { 条件 } )

## 查询里面的 > < = and or

等于 {<key>:<value>}
小于 {<key>:{$lt:<value>}}
小于或等于 {<key>:{$lte:<value>}}
大于 {<key>:{$gt:<value>}}
大于或等于 {<key>:{$gte:<value>}}
不等于 {<key>:{$ne:<value>}} !=
$in在范围内 {\'age\': {\'$in\': [20, 23]}}
$nin不在范围内 {\'age\': {\'$nin\': [20, 23]}}


db.student.find({name:\'jianeng\'})
db.student.find({age:{$lt:20} }) # age<20

db.student.find({age:{$lte:36} }) # age<=36
db.student.find({age:{$lte:36} },{_id:0}) # age<=36

db.student.find({age:{$gte:36} },{_id:0}) # age>=36

db.student.find({name:{$ne:\'jianeng\'} }) # name != jianeng


db.student.find({name:{$in:[\'jianeng\',\'lucky\',\'张三\']}}) # in
db.student.find({name:{$nin:[\'jianeng\',\'lucky\',\'张三\']}}) # nin

 

 

MongoDB AND 条件
db.student.find({name:\'lucky\',age:18}) name=lucky and age=18

 

MongoDB OR 条件 $or:[{},{}}
db.student.find({$or:[{name:\'jianeng\'},{age:38}]}) # name=\'jianeng\' or age =18


### 混合

## 1. name=\'赵六\' and age >=36
db.student.find({name:\'赵六\',age:{$gte:36}})


## 2. name=\'赵六\' and age >=36 sex :男 or sex:male

db.student.find({name:\'赵六\',age:{$gte:36},$or:[ {sex:\'男\'},{sex:\'male\'} ]})

db.student.find({
name:\'赵六\',
age:{$gte:36},
sex:{$in:[\'男\',\'male\']}
})

 


 

使用insert_one插入一条数据。

 

 

使用insert_many插入一条数据。

 

使用update_one更新一条数据


 

使用update_many更新一条数据

  

使用delete_one删除一条数据

使用delete_many删除一条数据

使用find查找全部数据

使用find_one查找满足条件的第一条数据

 

 

以上是关于MongoDB 基础的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB PHP

ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

mongodb关联查询

无法在 MongoDB(猫鼬)文档中追加数组

201555332盛照宗—网络对抗实验1—逆向与bof基础