设为首页收藏本站| vip购买 |

cncml手绘网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 511|回复: 2

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

[复制链接]
发表于 2019-5-10 15:00:08 | 显示全部楼层 |阅读模式
查询表中学生年级大于20,如下:' W% I2 n8 B: I6 o! r# F6 @) D0 g
& [# O( e8 |- ~5 s& {" K+ K7 g
db.getCollection('student').find({'age':{'$gt':'20'}})- g( y8 R, c, X

. z8 g: f: x, U- q5 o5 d$ T" {0 x0 O1 \
* |* s1 z1 C; O7 _, T
$lt    <   (less  than )6 C' \! R$ d6 }
7 C0 s) l, q+ C! |) j
$lte    <=  (less than  or equal to )' l! H6 F- P& I+ [

$ v# y! V& _* B  p$gt   >    (greater  than )
1 l* P% a4 c7 z9 \3 A$ A9 L
& k- Q7 L7 q: I& X. Q2 @$gte   >=    (greater  than or   equal to)
# G. S# M/ [8 ?# S3 ?( |$ z$ ~3 d2 c- J! h( F) \% c
  I  I0 p9 I! X! B8 Z
- P9 I( l1 E2 `3 _+ F# m9 Q
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}5 D' a* X; v: Q9 y7 I

6 _' h8 M# F7 d. z- g$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list5 P/ n+ \5 K, _! R/ V( p
. m( s) p6 [; ~/ L2 M2 B
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
; C8 Y; V# K' p; O; f9 m" }
3 J( F, |" i6 m3 A$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字5 Z  M9 Q/ n9 q" ^
2 f1 R' C( L3 k% T3 Q
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在" U* L$ Q0 Q% X( y% D" I

, z# Y2 |, o7 e2 [$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int1 t2 N4 d* S( d) T

" }5 q$ D1 q2 n" o- [* Q$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
$ M, f* l+ N7 i8 x
) |. t6 n1 h% U6 \( m( N: [$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})) M% J, V& m! y" w9 t

1 R. C# d% G  z( ~; I6 b$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]# g$ m, N8 v1 z9 U

' y* Q. [& \* q  ]* F$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],- U  w2 @' Y+ R1 j- d2 Q
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 * U7 T0 v' J* e. V+ A2 C* J
; e) ?1 `# J. O+ a: L1 c/ M
2 Q7 W+ J. q" o3 C2 ^
# I, \7 U" X' ]$ m3 z
& f% W/ d* ^7 P) ~- q0 ], n
& m0 X4 M4 R4 m0 Q. @% e6 n9 t

; n" Y. N. B  z  L4 P6 V) q6 \" H

; E; o0 ^( D" Y( M, M+ m& Y组合使用方法如下:, b/ G5 ^) ~) ?

( r- K- V9 p/ U6 |# ddb.user.find({"age":{"$gte":18,"$lte":25}})
, Q. H1 k, g& |9 ~8 D( i$ S! z8 A. a4 }) p$ e

5 A% P" }, b2 b, K7 \- e; i
- L) r. @. W- f9 n7 f. X对于日期的条件查询方法:
  T9 `4 o, Y0 q5 c% Q1 e/ C. H/ m3 [! h
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})0 q+ Z* B+ s% `6 \# J9 I

$ _2 d  O1 \* R+ D
, I* P" o) q+ \+ D2 K8 q
* o# Z# c; f  O) @  s2 \2 D4 X2) 不等于 $ne; }0 y) G/ |" Y$ w

7 v3 w: H4 q- Q* h) E' L, k& ?例子:3 D, k( ]( R/ r" c  u" }

# F. I6 S2 m& I( P7 Pdb.taobao.find( { age: { $ne : 10} } );
) M$ h3 d( \+ W" T9 [5 ]% p! ophp7 查询mongodb方法大全
. @1 M" h. C; M! n" Y
游客,如果您要查看本帖隐藏内容请回复

3 M4 d! F; Q1 B% t  y4 b5 T7 i, m8 H! V& W5 M* B$ [
* @  z3 e" L8 e: S! A/ ~
5 s$ u# l9 I2 h/ j9 ?
* @+ ?  b7 i  G( [' K) K" h$ p7 f
- u. i/ U% A" G: K/ @+ R* a  U
" a+ e5 S, u/ K( P! D( n5 _' m: T
; b, F2 s0 j) X( k0 j- s. t

  W& W/ q! U/ `$ m# r5 B
 楼主| 发表于 2019-5-15 11:52:22 | 显示全部楼层
查询中的 and or
) E& @% r" l. |- c) v% g
  1. //and% q$ U+ h* m+ V( p
  2. {key1:value1, key2:value2}" [0 e/ s* w7 h0 n# ]* h. V' D
  3. [key1=>value1, key2=>value2]
    2 i, D6 R' z- u/ \5 P; v
  4. //or
复制代码

' o5 Z- D9 F8 n* O3 n0 Q5 ^& L, F3 s  L* b$ z. w5 T
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-16 15:39:54 | 显示全部楼层
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

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

本版积分规则