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)