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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:; M! f  X" U- Z% g! w+ U! n

' {8 M+ H( s$ H/ ~db.getCollection('student').find({'age':{'$gt':'20'}})8 A9 [* G' u1 Q1 q6 T% N$ B. _& P
# F3 p+ a. e- Y4 V# Y6 x. w: k1 P
! v* u0 i* v, p2 I3 _3 g/ C
. b/ N( K1 q/ A0 n
$lt    <   (less  than )
7 N& _  G" k( A4 o/ N/ d" R1 o2 w
! Y8 u3 R$ `+ N. `8 R$lte    <=  (less than  or equal to )  }% j) q$ J6 X8 _; P8 h* G

! n0 d5 J1 Z9 f; Y+ F# l$gt   >    (greater  than )
: X1 }% R. F: y7 t* P, N: T
+ c: }& @- W1 L- E! Z; Y$gte   >=    (greater  than or   equal to)1 s9 d$ \. D' w3 T' Y2 v7 f
+ c6 e' z6 S( J3 {1 X& B* m) z/ X" X* |
游客,如果您要查看本帖隐藏内容请回复
2 L6 m: I) k7 {
, g! I$ ]7 W: I6 {1 f
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
  ?4 l' X) Q- C. ?4 h/ c3 [
7 _9 q% V* B4 l$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
  ~$ |$ i$ E( S3 L, k: C( G; f6 g: A
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
$ c2 g; n% ?) T( F5 [4 @2 d0 [% |# w# C& L! y4 g- Z, @; b
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字. Z9 ~% t! I3 `  ~' d
3 S% l! U+ I% c; Y
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
/ G+ \' ?+ q$ i+ _
6 h: J6 Q, T  h0 z1 s% U) v- R$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int0 x% }4 p0 \& ^: y/ [2 @* f/ m

! E/ Z5 P$ b# B: c* n* {9 }$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
: H; E; ?" {& ~, b
/ @3 [2 W) n( w) j3 {" k$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
+ |# {/ M7 l# X$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);8 y; X7 N; \2 ]5 [
- q  V( P/ r9 L+ w/ t
$exists 键是否存在   {finaGoalLine:{'$exists':true}}
0 [# w2 Q- s  n4 Q' {
: r' Z, E5 u' ?4 w. p0 x/ K! T3 z$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
9 e  m' S) ^- H6 O6 d6 M1 `5 n, ^* t" v, s+ ]2 n, @2 d
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],. u" Z$ r6 E4 m7 Q8 @
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 3 M; }8 f4 h- d7 d; ^

  m9 G: X  D9 Z: G
3 u2 E# G( m7 _* A
5 q- B# A+ P7 g2 M

: Q* P. V: t; j6 U2 A/ Z8 M- [
: K5 a4 h3 h7 |. n7 |

. ~1 a  s+ |0 h/ L' k6 v; ]
; @: t. f7 j# _' X! C- d
) L0 Y) a9 D7 l, X* m组合使用方法如下:5 R6 J+ h& B- X) m

7 v9 a9 [, w  ]* ndb.user.find({"age":{"$gte":18,"$lte":25}})* T, r# a) S, ?) x* X3 E- P; _

* {3 V! r1 d3 Q+ ?& O: r  Z4 o# `' e2 R- t7 f
0 l8 _! _  u7 V
对于日期的条件查询方法:/ `; r' q* M3 Z* `5 T- v) N5 i; T+ H: M3 j

3 L& L- B' n' x  F4 ~2 Vdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})$ k* r6 h% B, k# q" {) a, f
/ [' w5 [  T( Y* ?

' B0 u$ d2 o# W/ A, _- G. Q/ D/ [* S: j$ I5 Y- X( n( M
2) 不等于 $ne
/ H  X2 `9 X! K6 ^& X' e
4 u& N3 X& E- h' `0 S( m; ~" S例子:
# p" K; k) P6 B+ f# m
: {, L9 D$ R+ S$ E+ H: ~4 q# odb.taobao.find( { age: { $ne : 10} } );3 C0 E# c. \  K$ L( S/ E" P/ k
php7 查询mongodb方法大全
" L5 [0 k+ e8 L& f' L# h
游客,如果您要查看本帖隐藏内容请回复

3 S% b( P1 E" e( |6 k
  X: q& A! N2 q" a* }/ ?; Q  i$ o( A* R; |2 F2 W! u

) ^" M4 P# w5 {9 f$ W+ p0 b' q4 h  |

+ S1 [5 l6 p; T
( p8 D( B4 m+ }# N8 m3 G7 f
! g1 N/ v  B6 ~: k& J# h$ s
1 B+ t6 h; j* }$ H
! y3 R1 J2 H; c  L# `9 A6 p* m9 V+ A% ?2 _" r" z

4 s5 A; Y3 z4 G( h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 显示全部楼层
查询中的 and or% a' C# N. Z9 w2 p; p) t
  1. //and
    : r, ^- b! b& x$ Q' W1 d4 y, |4 e
  2. {key1:value1, key2:value2}/ A6 h8 N8 J; M! A
  3. [key1=>value1, key2=>value2]: q+ N4 O6 p) U. o9 Y3 j, Q- ^
  4. //or
复制代码
: ]  t! D6 V, K( P. k; i7 E! R

) ?; l# X7 r9 y1 ?4 d. q
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-17 20:25 , Processed in 0.145660 second(s), 18 queries .

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