find的不等修饰符


构造数据

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}
)

我们先申明了一个日期变量,然后使用大于符进行筛选。


文章作者: 技术潘
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 技术潘 !
 上一篇
find的多条件查询 find的多条件查询
多个条件查询数据的方法。
2019-05-10
下一篇 
状态返回与安全 状态返回与安全
在操作数据库时,对数据的修改是需要有足够的安全措施的,其实在实际工作中,我们用db.collections.update的时候不多,在修改时我们都会用findAndModify,它可以给我们返回来一些必要的参数,让我们对修改多了很多控制力,控制力的加强也就是对安全的强化能力加强了。
2019-05-08
  目录