插入数据
var deptData = {
"deptno":30,
"dname":"市场部"
}
//插入
db.dept.insert(deptData)
//更新,mongo会维护一个id是由系统自动维护的
db.dept.update({"_id": ObjectId("5e7ee30bf356f6839cf22f65")},deptData)
//查看
dp.dept.find()
删除集合和数据库
//dept为集合名,可以随意设置
db.dept.drop();
//这是删除当前数据库
db.dropDatabase()
数据库删除为删除当前数据库,记得使用use移动到想要删除的数据库
数据操作
//创建数据库
use mldn
//数据插入
var infoData ={"url":"www.baidu.com"}
db.infos.insert(infoData)
//插入多条
db.infos.insert([
infoData,
infoData
])
//批量插入
for(var x = 0; x < 100; x ++){
db.infos.insert({"url":"mldn -" + x});
}
输入it可以查看更多结果
数据查询
数据查看核心语法: db.集合名称。find({查询条件},{投影}),
//查找样例
db.infos.find({"url":"www.baidu.com"})
db.infos.find({"url":"www.baidu.com"},{"_id":0,"url":1}).pretty()
pretty() 用于漂亮显示,当列数较多的时候,效果明显。
条件过滤
使用where进行数据查询
db.students.find({"$where":"this.age>20"}).pretty();
db.students.find("this.age>20").pretty();
db.students.find(function(){
return this.age>20
}).pretty();
db.students.find({"$where":function(){
return this.age>20
}}).pretty();
//上面几个是等价的,其实就是传入一个函数。
//使用and链接多个条件
db.students.find({“$and” : [
{"where":"this.age<21"},
{"where":"this.age>19"}
]
})
虽然这种方法可以实现数据查询,但是最大的缺店是将在mongodb中的BSon数据转换为了javaScript的语法结构,这样的方式不方面使用数据库索引机制。
正则运算
如果想要实现模糊查询,必须使用正则表达式,如果要想使用正则,则按照如下的定义格式:
基础语法:{key: 正则标记};
完整语法:{key:{"regx":正则标记, “$options”:选项 }}。
主要选项:
i:不区分大小
//查找姓顾的同学
db.students.find({"name":/顾/}).pretty();
//查询姓名中有字母a的(包括A)
db.students.find({"name":/a/i}).pretty();
数据排序
在MongoDB里面数据的排序操作使用“sort()” 函数,在进行排序时,有两种顺序:升序(1),降序(-1).
范例:数据排序
db.students.find().sort({"score":-1}).pretty();
排序里面有一种方式称为自然排序,即按照数据保存的先后顺序进行排序:"$natural"
db.students.find().sort({"$natural":-1}).pretty();