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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:' F- U: r' G. p- R

  k: y2 @1 ^- w) x/ S8 O( ?db.getCollection('student').find({'age':{'$gt':'20'}})
4 X7 e, E1 s& ?1 B) f9 r/ M5 H( m) P1 b- V7 X+ n" Y, d

7 N) h3 ?" ^8 C/ `' _) ~
. G* |1 q6 q0 H8 J$lt    <   (less  than )- f1 G) H# W# p+ {

( K! |7 s' T# E' p$ X$lte    <=  (less than  or equal to )
$ F- m& b& w/ B# {( O  Z4 k0 q5 n4 _/ e3 X$ |5 W: f* I0 X
$gt   >    (greater  than )
( @/ `* c/ X( j# F9 {# F0 U) m+ |& |* \: x
$gte   >=    (greater  than or   equal to)
5 [  G- g! J) ?- ]2 P2 ]* \, C* A; f* J& [+ k5 |. _
游客,如果您要查看本帖隐藏内容请回复
. y9 u. N$ ?& C, U

" F2 n: M8 ^( g, C$ne  != (not equal to)不等于  {'age': {'$ne': 20}}( N: J0 I7 D0 Q3 f# l* h* T0 K
' g' C  D* G; d$ Q+ S) W+ A% @
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
3 f! K5 ~4 H/ Y% M1 w4 z3 h* m; a0 n0 w5 U' q
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list8 @3 f& q' ~  [) ]/ P) `
9 S. {' i+ H- x9 d# D3 O
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字' X( g4 h/ C' M

1 x. S% }$ P$ b. q$ K. {$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
; v+ X, E, G8 b/ a* S1 _
+ z) F! I& m! z: z$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
) X2 C! L. B5 L  D& B* c9 e5 V: P
/ G- I2 c5 Y0 }/ A( n+ L$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串7 v8 ]$ T$ i4 Q/ Y
# I) @2 v$ Z- @6 i0 I% y
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})" n+ z( o- L1 i  b2 [5 ?
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
/ O' d6 c6 D+ h+ [1 Q- G
0 z, D! O4 G3 T: E$exists 键是否存在   {finaGoalLine:{'$exists':true}}
2 e- c( _" z; C' p* R% W. K( \
, S4 s  ~! `6 X' ~  I. j3 w9 q$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
8 p9 ?+ w! x2 s; |
( l6 j) a+ q* y, z* C: M: c$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
. e! V/ l% q; n$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 5 F; C) v2 `4 W% P2 e
( w% j1 S' r1 q: y, S

2 @1 i! f8 U) q% w# }) R& {/ a3 ]5 M" ]! C( `0 `" E# ]2 }
: \$ z/ @/ T$ I  e: a$ R2 B
: Z) ^5 F7 j6 }' ]

: V. ^  G$ p7 L. F9 ~8 e, j' @6 n1 E/ Y& R* _- h
$ {! b$ i" ^; y7 P& D. O. ?
组合使用方法如下:5 H% v& S- a5 x

2 d: j6 B# W! z( i) ?9 \db.user.find({"age":{"$gte":18,"$lte":25}}), T7 _( m& F& P# {) v
* P7 L# ^& R) [" e
1 Z6 P$ u. Y; v9 ~0 e
$ `5 V7 t: g. d
对于日期的条件查询方法:
! {6 a3 t% E. w
% O2 y% K7 V  ^6 W. Zdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
7 u. J) D- {) s0 T4 ~% L+ J. b/ d
# d+ A# Y4 u+ n& o/ Q6 V6 F# y' c& a8 X1 F

  N8 r. g! `/ Q# I" B2) 不等于 $ne
3 M) p8 `" {2 D! |$ }  b& G' E! k
7 x5 e" c* G$ K* z例子:' w* d" \* A8 R% a, |# k
2 a( @3 F/ f: T: K+ o8 F
db.taobao.find( { age: { $ne : 10} } );7 K- ^1 d5 `/ Y$ p2 U( M
php7 查询mongodb方法大全. @& z' ^4 [3 A% c; C
游客,如果您要查看本帖隐藏内容请回复
! E  B2 R/ e" B* T3 y; J

  o1 O5 E0 ^& j: Y% W$ u
+ z/ x# q6 O& C5 u
" ]$ Q6 w. E( O  k7 ~
' s4 U/ n# o# E, K5 G
* m: V) z1 B6 a4 w% U* F/ r: Z+ q2 f* l6 u6 a% |
8 W/ l7 m% N5 ?9 l( d# t- m: F

1 X5 W. x, l1 v# m9 q/ B
2 }8 A* P' Y" g* s% ~/ c: Q. f3 |# e4 P# j2 |) w$ q# i

) F: u' w( E$ E: ~# \% G# R2 p3 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
: v7 P  I9 r3 H5 p
  1. //and) Q$ z) H: |6 D
  2. {key1:value1, key2:value2}
    ! ~8 v1 @( J- E5 F8 w6 I8 }' n
  3. [key1=>value1, key2=>value2]) s  n6 I* j/ ^& ^. N1 s. E& P3 q7 j/ c8 q
  4. //or
复制代码

' y  y! v0 @4 b) H" f. m% y) v( `) f
" l: f: L) [- g5 c7 C
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 08:14 , Processed in 0.058603 second(s), 19 queries .

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