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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

- M2 Z* `+ v/ `5 j. R" odb.getCollection('student').find({'age':{'$gt':'20'}})+ i( d( y: S- Z; }" K! D

# X2 t. X! V! i+ ~
! U3 e/ T5 T6 a" o: i
9 `2 ^' K1 @* ]0 K4 c& n: K* x9 u$lt    <   (less  than ), S- S! Q6 \: f8 ?1 X: n# o

$ b# w8 b3 n* l* w1 w$lte    <=  (less than  or equal to )$ |4 j1 p' n# H1 @# v

) W+ `% Z" P2 {$gt   >    (greater  than )
) x. B' ?0 u! }) e7 h& f: h* q6 r  R" |% }9 {% m# N
$gte   >=    (greater  than or   equal to)
& J& U5 t& E* ~2 M. g% ?; e0 Z: K- K6 K
游客,如果您要查看本帖隐藏内容请回复

6 k& {% z$ ?/ d6 y) Q) B3 f& m! v+ y
3 E  d7 M" \' T- S8 l$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
' i+ N# M; R, _
/ c8 z' m3 T: c$ h* L; b$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
9 Q& Z3 |. R7 H8 S) t( Y+ N  }* ^- R
& O  W- g# y, o$ s$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
2 Y. @$ B! R- P8 v$ T: {# H0 w3 P; q0 o" K9 {. ]4 \5 ?) F8 f& e3 J
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字; C4 r* T8 A% [. h- i
3 [) N3 c+ z4 K; {$ {5 \
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在: g/ p6 J  f* N' o. c6 l2 V0 Q0 @
7 n6 k7 f9 [- L9 Y8 y5 |
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int% h6 j5 f9 I- u# Z
. i/ F" J* `. X, u- [9 s
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
( m$ _$ S: |. s6 c; G& g3 M/ {/ U6 D/ ^- a) w0 b+ s! C
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]}): U  F6 L, B9 s
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
3 Z* z+ M* @: T. V- A2 _' O
  K9 J5 c. ]6 D. y1 o4 S/ X$exists 键是否存在   {finaGoalLine:{'$exists':true}}
5 B# l; u9 ~% d* [: b2 L1 u
+ B# N' o$ w! V" Z# s- Z$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]/ S& h# A; {0 |6 F& V4 Y4 }. q
3 G+ d+ W5 i# _; I% x' S3 b
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
; T# Z& ]3 {6 G+ G) ~2 o! Y$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
3 y( K$ S' R% s0 e6 j  Q1 s; p4 M; C" q2 T( ], e& N" m

. u; z6 i, G) u6 X3 U  V" ]2 H# z, R, ^
) ^- T7 l, G- o. Z
* _9 l" g' h- a1 R

7 b7 K2 P+ @( V6 ?( g8 e: c
5 I$ u( h6 o; t& \7 i9 V0 B8 t. Y
+ }% T% d7 }9 T" E! S6 }: _组合使用方法如下:
& G% w; D" n0 Z  A4 G4 H+ \0 F, }
$ C, R& ]  r; Y8 ~3 m: Hdb.user.find({"age":{"$gte":18,"$lte":25}})
, K# m4 m7 }8 G# E! T6 o8 O! b
4 _7 T  k" \$ ?( n5 V
% H! k$ }' p2 U3 Y, a* g: Z
) G  T. M& \% L# |对于日期的条件查询方法:- ^5 P  L. W. u5 S

' P, ?+ @/ `( Z5 X4 j- E6 Udb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})- z0 q4 f/ r; g4 s
+ I( T$ s" N, U+ r- k

4 I- C, E) w; G9 S  s3 ]9 y* o, j" e4 z
2) 不等于 $ne  a% [8 V' `- Y7 }
; S" ^( A& @! h6 E
例子:; D9 J  C3 q( R: W" X
# x( c/ a+ X2 J) C
db.taobao.find( { age: { $ne : 10} } );# [+ i2 a5 E" M
php7 查询mongodb方法大全
& _9 D& s' s$ a, i- u
游客,如果您要查看本帖隐藏内容请回复

# ?5 v& w8 z" H5 d7 V+ U$ V
; s' d: l5 \5 m) g: [! x
! o% b; u. _9 h4 }4 F* V+ q% y6 ?' P2 f  r/ m

8 Y* ]& ?& C# G5 p7 M+ P
! K2 B) _$ y) t/ z3 c5 |* G
1 _1 v7 |/ C3 e2 a- Y) s+ E/ Q9 r
* R. r* B1 K8 R7 ~& i
% q0 c/ k1 s5 n' ^) g
( R9 [6 v2 J) R0 r* I0 T4 w# L0 l# I' U# m& r6 Q; P4 b

, y  }+ g- Q9 N7 L2 E# c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
' X0 U" |4 Y# O# d
  1. //and( D. y& y$ |  c
  2. {key1:value1, key2:value2}9 w$ |9 Q5 B  l) J6 i7 I! h6 f3 p- Y
  3. [key1=>value1, key2=>value2]
    6 X) f# \+ X9 x3 O* u" A
  4. //or
复制代码
' t' e& t' N4 }6 K
2 ?0 m# D5 d# c4 f5 ]
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 16:49 , Processed in 0.116562 second(s), 21 queries .

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