您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12062|回复: 2
打印 上一主题 下一主题

[php学习资料] mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
% L7 c" r% k5 l# J& A. |7 h0 m! ~* L$ m9 g% Q# f2 c
db.getCollection('student').find({'age':{'$gt':'20'}})
: J9 E. Z3 M6 V7 v9 D* \% h) Q) U& l; w2 u+ \9 t3 t

, i, z7 n, i4 o2 [( O' a5 L; k8 Q, c, Q6 l/ p
$lt    <   (less  than )
- k$ X1 k9 M, W' R; M- j0 q7 c, j, D4 i
$lte    <=  (less than  or equal to )
0 Y7 J6 D( t' [; e* M% w3 \7 |
" R/ K4 u, u0 p( d  {$gt   >    (greater  than )
# L; S3 m4 p: K, c% q6 @0 G( {0 U1 w$ E1 l
$gte   >=    (greater  than or   equal to)
" k, I, L8 `6 s! H+ {+ ?, v4 a# g  o. R8 D
游客,如果您要查看本帖隐藏内容请回复
) `  h4 e" [( d7 d# G  J/ l
8 w& u0 }5 O9 L9 i  O
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
8 O: @" H- Z/ Y
6 w# x9 C2 G) P% s$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
9 @* _& \% R* |/ ?
) }& P( H: Z! S) M$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
5 J$ d% s: k5 ~' ^  }1 c1 d9 W, |: k) l
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
  Q. w% j* c" L: A* c% Y# k  [' b4 c; S$ L. o/ G
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
- t& Y( H+ S# f% C$ R6 O, g# L- n; ^+ T% M4 m+ Z" e4 I+ s
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
3 X5 w7 W1 b! m; b1 N! \$ m! l& O+ O1 M
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
/ D% I; X, M" q5 r$ h" L7 b- A* ]# J9 R5 ?8 s# G( G" ^
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
, @) d* r7 m+ |# o  B( v6 K$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);, h3 i" O' k  O3 x$ ^. [0 M& _

/ F% U$ v8 @8 x: b+ Q; |/ ~$exists 键是否存在   {finaGoalLine:{'$exists':true}}6 E* k( }3 _# D4 ?/ J$ @- v
  g. q+ T' ~" N* D
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]3 D1 Y% n$ H. H3 j& t* C

7 m1 D  H" S' n: L/ q' z' K" S$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
6 I* W# r! O+ u  `$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
' {. x: t1 ?; U- l, H6 Q6 [2 L7 {3 b% ]

5 B# p9 q9 V/ b: x& z' J3 d7 k# ~6 e4 U
' {$ Y7 |0 s$ e  d) ^' z9 V1 p1 E

% J/ f2 J& A3 v: O/ u( G3 w
/ l  D6 b+ x, |% q, Q

" v# F& e7 I' G! i+ U# ~0 _0 s
* C& i4 J6 L/ b5 S  N5 o组合使用方法如下:" c  H1 J2 k1 L
  Y) `! v6 a6 |/ w7 Q3 j
db.user.find({"age":{"$gte":18,"$lte":25}})
" u, w' ?2 I4 M  g% x2 b
% F; \8 h1 Y% \  r+ X
8 |: }# i7 g* i4 }( O9 ]
: s9 U! d) K' j1 S- |: H对于日期的条件查询方法:& S  O, ]* D+ L) b! G& J3 g- ^
5 A3 {  L+ j1 W  Y2 R" i
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
; W( }4 Z. A! ~- c5 s# L# g* K: ^; m$ X: `9 ?- `0 `

' M- X, R8 j! e2 y* J1 Y& E
8 L7 N" T) m& V: w5 [2) 不等于 $ne
# ]4 a) n3 T7 O$ b  A- N" ^/ u1 @- ^: O4 u% \
例子:, i/ C( `3 _5 Q

4 a; a' b1 f/ K+ [! |& k0 `db.taobao.find( { age: { $ne : 10} } );
/ R  T3 Z4 {3 g! e3 I& ~; Y, s, ?php7 查询mongodb方法大全! i; |. L# H- }- o8 {$ v4 r+ {
游客,如果您要查看本帖隐藏内容请回复

' Q( h& W4 @% q1 j6 w* W8 ?4 O& g5 Y+ O

  w3 Y  ]/ f7 w# n
& y" G% q0 J" t! I) I9 ]) a9 E9 j3 _; \) A. X0 \4 L

. d/ L7 [1 V3 I+ a
4 {. F8 ^9 M" W9 o; e
& x; o, D5 w2 U6 ?. y3 q
9 g2 r, F' a/ X& s+ I
0 `/ V& i+ q* j% M, f, p8 W
! k: \7 Z- {; E  n7 s+ u) F% ~2 `* f8 U2 ]( `) Y# l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
( C& E- h6 b( i& ~
  1. //and
    9 t- C. y; {+ G/ z
  2. {key1:value1, key2:value2}
    7 ?# F7 D7 B7 R( l2 X& ]9 S
  3. [key1=>value1, key2=>value2]
    % S6 ^# k" k6 Z' q' F, ]
  4. //or
复制代码
# }" Q- I" ^% j9 l  R+ [4 t

. q5 f+ w2 N/ {) Y
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 11:10 , Processed in 0.113467 second(s), 18 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!