MongoDB 基于c++语言编写的
介于关系型和非关系型之间的非关系型数据库
MongoDB 的数据单元是文档
文档 ----》 mysql 行数据
集合 ---》 mysql 表
js ---》 相当于对象 {'name':'小芳','age':18}
命名规范:
1、集合名不能是空字符串;
2、不能包含 /a /n --- 转义 字符;
3.不能以system开头 系统集合的保留前缀;
4、不能使用保留词 $ ;
操作数据库
首先启动mongoDB 管理员运行 输入 Mongo;
1、查看
2、选中、创建、使用 use 数据库名 ;
3、 db当前被选中的数据库;
4、删除数据库 db.dropDatabase() 类似清空
操作集合
1、创建 db.createCollection(1,2) / 1:集合名 2:可选参数 ---》 集合的约束 autoIndexId 自动排序
db.createCollection('my_self_one')
查看表
删除
MongoDB中的数据类型
字符串 utf-8 ---符号
整型 自动切换
布尔值 true false
数据
时间戳 ctimestamp ---》当文档(数据)修改或添加的时候,方便记录的
对象
null
日期
id obj_id()
正则
对数据的操控
1、添加 insert()
单条数据:
db.my_self_two.insert({
name:"小鸟",
age:27,
like:"xxx"
})
同时添加多条数据:
db.my_self.insert([
{
name:"小明",
age:27,
},
{
name:"小红",
age:27,
},
{
name:"小张",
age:26,
},
])
OK之后
添加一条数据
db.mytwo.insertOne({
})
添加多条:
db.mytwo.insertMany({
})
查询文档:
1、find()括号空查询所有
db.mytwo.find()
查询一个
db.mytwo.findOne()
特殊的:
save()
当_id相同的时候,save() 完成保存,insert()会报错;
查询age 等于
小于
$lt <:
db.my_self.find({age:{$lt:28}})
大于: $gt
大于等于:$gte
小于等于:$lte
不等于:$ne
$and 多条件查询 且
find({
$and:[
{a:{$lt:5}},
{a:{$gt:10}}
]
})
$for 多条件查询 或
find({
$for:[
{a:18},
{a:20}
]
})
2、删除:
remove() 参数1:删除的条件 参数2: true| 1==》删除一条数据
db.my_self.remove() 删除所有
db.my_self.remove({age:18}) 删除所有满足条件的数据
db.my_self.remove({age:26},true|1) 删除满足条件数据中的一条
示例:
db.my_student.insert([
{sno:101,sname:"小军",ssex:"男",birth:"1996-02-20",class:"95033"},
{sno:103,sname:"小兰",ssex:"女",birth:"1994-06-03",class:"95031"},
{sno:105,sname:"小强",ssex:"男",birth:"1995-10-02",class:"95031"},
{sno:107,sname:"小丽",ssex:"女",birth:"1995-10-02",class:"95033"},
{sno:108,sname:"小明",ssex:"男",birth:"1997-09-01",class:"95033"},
{sno:109,sname:"小芳",ssex:"女",birth:"1995-02-10",class:"95031"}
])
db.my_teacher.insert([
{tno:804,tname:"李城",tsex:"男",birth:"1958-12-02",prof:"副教授",depart:"计算机系"},
{tno:825,tname:"王萍",tsex:"女",birth:"1972-05-05",prof:"助教",depart:"计算机系"},
{tno:831,tname:"刘冰",tsex:"女",birth:"1977-08-14",prof:"助教",depart:"电子工程系"},
{tno:856,tname:"张旭",tsex:"男",birth:"1969-03-12",prof:"讲师",depart:"电子工程系"}
])
修改:
update() 查找--》修改
save() 替换现有文档
db.my_self.update({
'name':'赵四'},
{
//设置值
$set:{
}
}
)
上述true如果换为false停止修改/添加
正则查找:
//正则 不区分大小写
示例:
var express=require('express');
var mongo=require('mongodb');
var app=express();
var MongoClient=mongo.MongoClient;//开启服务
var Url='mongodb://localhost:27017/myself';//存储URL 用于连接池
//获取链接
MongoClient.connect(Url,function(err,db){
if(err){
throw err;
}
//编写 数据库 的操作语句
//添加
db.collection('my_self').insert({
"name":"随便",
"age":19
},function (err,result) {
if(err){
throw err;
}
console.log(result);
// res.send({
// result:result,
// })
db.close();//关闭数据库
})
// 查询
db.collection('my_self').find({"age":19}).toArray(function(err,result){
if(err){
throw err
}
console.log(result);
db.close();
})
})
app.listen(3080,function () {
console.log('lets go........' )
})
//修改
db.collection('my_self').update({
"name":"随便",
"age":19
},{$set:{"name":"夏辉"}},function(err,result){
if(err){
throw err
}
console.log(result);
db.close();
}
)
//删除
db.collection('my_self').deleteOne({"name":"小雅"}),function(err,result){
if(err){
throw err
}
console.log(result);
db.close();
}
db.collection('my_self').remove({age:19}),function(err,result){
if(err){
throw err
}
console.log(result);
db.close();
}