1. 程式人生 > >query更多的篩選用法

query更多的篩選用法

用法 數據 dsd fin 大於 等於 數據類型 不存在 query

比較操作符
$eq : =   寫法:db.class0.find({age:{$eq:18}},{name:1,_id:0}); 查找年齡等於18
$lt :<
$lte : <=
$gt : >   db.class0.find({age:{$gt:17,$lt:20}},{name:1,_id:0}); 查找大於17且小於20
$gte: >=
$ne : !=
$in : 包含    db.class0.find({age:{$in:[17,19]}},{name:1,_id:0}); 查找17和19的年齡
$nin: 不包含

邏輯操作符:
$and 邏輯與
 1. 在query如果寫多個條件默認即為and關系
  db.class0.find({age:{$lt:18},sex:{$eq:"w"}},{_id:0});
 2.邏輯與$and
  db.class0.find({$and:[{age:{$lt:18}},{sex:"w"}]},{});
$or 邏輯或
 查找年齡小於17或大於19的數據
  db.class0.find({$or:[{age:{$lt:17}},{age:{$gt:19}}]},{});
$not 邏輯非
 查找性別不為男的
  db.class0.find({sex:{$not:{$eq:"m"}}},{});
$nor 既不也不
 姓別既不能是男,年齡也不小於18
  db.class0.find({$nor:[{sex:{$eq:"w"}},{age:{$lt:18}}]},{});
 查找姓名即不小於dsd,年齡也不小於18
  db.class0.find({$nor:[{name:{$not:{$lt:"dsd"}}},{age:{$not:{$lt:18}}}]},{});
$all 查找數組同時包含多項文檔
 查找同時包含49, 67的文檔
  db.class1.find({score:{$all:[49,67]}},{_id:0})
$size 通過數組個數來進行查找
 查找分數域中的文檔個數為2
  db.class1.find({score:{$size:2}},{_id:0})
$slice 顯示數組中指定項
 顯示數組前兩項
  db.class1.find({},{_id:0,score:{$slice:2}})
 顯示數組索引下標1,2
  db.class1.find({},{_id:0,score:{$slice:[1,2]}})
$exists 通過某個域是否存在篩選
 查找sex域不存在的文檔
  db.class1.find({sex:{$exists:false}},{_id:0})
$mod 余數查找
 找出年齡為雙數的文檔
  db.class1.find({age:{$mod:[2,0]}})
$type 找出指定數據類型的文檔
 找出age域值類型為1的文檔
  db.class1.find({age:{$type:1}},{_id:0})

query更多的篩選用法