构造数据
var workmate1={
name:'panpan',
age:24,
sex:1,
job:'前端',
skill:{
skillOne:'HTML+CSS',
SkillTwo:'JavaScript',
SkillThree:'PHP'
},
regeditTime:new Date()
}
var workmate2={
name:'panda',
age:20,
sex:1,
job:'JAVA后端',
skill:{
skillOne:'HTML+CSS',
SkillTwo:'J2EE',
SkillThree:'PPT'
},
regeditTime:new Date()
}
var workmate3={
name:'jspan',
age:20,
sex:1,
job:'UI设计',
skill:{
skillOne:'PhotoShop',
SkillTwo:'UI',
SkillThree:'Word+Excel+PPT'
},
regeditTime:new Date()
}
var workmate4={
name:'xiaowang',
age:26,
sex:1,
job:'UI设计',
skill:{
skillOne:'PhotoShop',
SkillTwo:'UI',
SkillThree:'Word+Excel+PPT'
},
regeditTime:new Date()
}
var db=connect('company');
var workmateArray=[workmate1,workmate2,workmate3,workmate4];
db.workmate.insert(workmateArray);
print('[SUCCESS]:The data was inserted successfully');
简单查找
比如我们现在要查找数据中年龄(age)为20。那我们直接进行查找加条件就可以了。
db.workmate.find({age:20})
筛选字段
现在返回来的数据项太多,太乱,有时候我们的程序并不需要这么多选项。比如我们只需要姓名和年龄就可以了。这时候我们需要写第二个参数,看下面的代码。
db.workmate.find(
{age:20},
{name:true,age:true}
)
你会在终端中看到如下结果:
{ "_id" : ObjectId("5cc0047eec051ac9f4b1a94a"), "name" : "panda", "age" : 20 }
{ "_id" : ObjectId("5cc11c51f3101b6fe831af75"), "name" : "jspan", "age" : 20 }
细心的小伙伴会发现还不够完美,多了一个ID字段,这个也不是我们想要的,这时候只要把_id:false就可以了。当然这里的false和true,也可以用0和1表示。
db.workmate.find(
{age:20},
{name:true,age:true,_id:false}
)
这时候你在终端中查看结果,已经是我们想要的了。
{ "name" : "panda", "age" : 20 }
{ "name" : "jspan", "age" : 20 }
其实这些查找操作,都是在作等于的阶段,但是不光只有等于查询,我们需要更多的查询条件。
不等修饰符
- 小于($lt): 英文全称less-than
- 小于等于($lte): 英文全称less-than-equal
- 大于($gt): 英文全称greater-than
- 大于等于($gte): 英文全称greater-than-equal
- 不等于($ne): 英文全称not-equal
我们现在要查找一下,公司内年龄小于25大于20岁的人员。看下面的代码。
db.workmate.find(
{age:{$lte:25,$gte:20}},
{name:true,age:true,_id:false}
)
日期查找
MongoDB也提供了方便的日期查找方法,现在我们要查找注册日期大于2019年5月9日的数据,我们可以这样写代码。
var startDate= new Date('05/09/2019');
db.workmate.find(
{regeditTime:{$gt:startDate}},
{name:true,age:true,"skill.skillOne":true,_id:false}
)
我们先申明了一个日期变量,然后使用大于符进行筛选。