Mongodb Find 查询

find 查询:

查询test中的额所有文档
db.test.find()

查询指定条件 的文档
db.test.find({"name":"zhang"});
db.test.find({"name":"zhang","age": 32});

查询结果指定需要返回的键 1显示 0不现实
db.test.find({}, {"name":1, "age":1, "item_id":1 })


查询条件
$lt $lte $gt $gte 分别对应 < <= > >=
db.test.find({"age": {"$gte": 29, "$lte":  40}});
查询不相等
db.test.find({"userName": {"$ne": "jok"}})


OR查询
in多值匹配
db.articel.find({'name': {'$in': [23, 34, 13]}})
db.articel.find({'user_id': {'$in': [123, "join"]}})
多值匹配相反 不是、 非
db.articel.find({'name': {'$nin': [23, 34, 13]}})

or多值匹配
db. articel.find({"$or": [{"name": "yang"},{"age": 23},{"like": true}]})
db. articel.find({"$or": [{"name": "yang"},{"age": {"$in": [23, 12, 18]}},{"like": true}]})


$not 查询
db.article.find({"item_num":  {'$not': {"$mod":[5, 1] }}})


条件语句,
db.test.find({"age": {"$gte": 29, "$lte":  40}})
一个键不能对应多个修改器 如不能同时含有{"$inc": {"age":1}, "$set": {"age": 40}}
这个查询会匹配x字段小于1 并且等于4的字段
db.user.find({"$and":[{"x": {"$lt": 1}, {"x": 4}}]});
db.user.find({"x": {"$lt":1, "$in":[4]}})

null
本查询不仅会返回name 为null的还会,返回不包含此键的文章
db.news.find({'name': null})
如果仅仅想匹配值为null的 查询
db.new.find({'name': {'$in': [null], "$exists": true}})


查询数组
db.food.insert({'name': ['apple', 'pag', 'joh']});
普通查询
db.food.find({'name': 'apple});  
$all
查询 既有 apple又有 pag
db.food.find({"name": {"$all": ["apple", "pag"]}})

$size
查询特定长度的数组
db.food.find({"name": {"$size": 3}})


$slice操作符返回某个键匹配的数组元素的子集
db.food.findOne({'name':'jok'}, {'comments':{'$slice': 10}});
db.food.findOne({'name':'jok'}, {'comments':{'$slice': -10}});
db.food.findOne({'name':'jok'}, {'comments':{'$slice': [23, 10]}});
返回一个匹配的数组元素
db.food.find({"comment.name": 'jok'}, {"comments.$": 1})


limit skip sort 
db.test.find().limit(3)  返回的匹配数量结果的上限
db.test.find().skip(5)  跳过前五个结果
db.news.find({'desc': 'mp3'}).limit(50).sort('score': -1)
db.news.find({'desc': 'mp3'}).limit(50).skip(100).sort('score': -1)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值