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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:. t, [: E! M! W
+ S, H) Z2 B$ r% _& B) L% @
db.getCollection('student').find({'age':{'$gt':'20'}})
9 T  M6 W, S/ [3 m
7 O2 H" `; z$ r9 |
  Q0 t/ F; m0 t. r7 X
  \/ ?& k) a7 a2 A$lt    <   (less  than )
( c: J) U  P7 A0 k6 h6 d
' z$ {$ a3 `' s% [! g* S- X$lte    <=  (less than  or equal to )
: |: M* i/ a" B7 g* [0 l4 V0 H  [0 I+ }7 g) S0 X+ _
$gt   >    (greater  than )
5 r- Y) D6 z9 b' h( s; k2 A7 S5 v. E$ H7 {/ Z8 c' j$ k0 R% k1 x
$gte   >=    (greater  than or   equal to)
  q$ B0 e# j  F( p* \1 p# t
3 K/ {: D' s/ X/ i
游客,如果您要查看本帖隐藏内容请回复

! ?4 b% r# e) |4 s  `0 F, J; s8 C& I2 D4 k( o
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}+ ^1 v" J0 ~; q3 y3 X

# |7 b! |* \4 l6 n' S/ x/ [$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
# @+ D0 u+ p+ u( X* i
1 u9 D; d+ r0 U& `/ i( M  J* c$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list6 Y) [1 e) M+ O7 U
( E: o8 T$ C, q) ^) d  A% ^  M3 ]
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
- k% X  m4 E0 U8 T) Q) Y; }& p5 u% @! F8 o" R
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在5 j3 ~3 V3 y1 w, \* J, l
. V% q% x& F* R( y  w
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int1 X- S( V# h: z
6 ?* b* t8 N0 c
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串. [' R7 {3 T! b4 f6 `) a
* S4 S6 M9 {) f  `8 y
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
, |8 h) C4 j3 v! u& d* C# u$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
) m( T0 N! R. P) M1 j
$ T) X1 Y$ L9 [$ \$ Y) d4 s$exists 键是否存在   {finaGoalLine:{'$exists':true}}* t5 t. E- R1 W) d

5 A! X. `$ z* L$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
. T5 w1 t) J# t& e  u& i
+ \6 h& T' u8 ~8 `$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
0 [+ u7 I( q7 O! `$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 4 N* D$ L5 w/ o; I& F% |& `8 F3 ?

+ `0 n2 B- l8 d3 `5 q

8 |4 ?; L/ B4 q( N- P- q1 z
  u' V* s0 m2 o
  C& I! e2 y* r, K6 N
4 J0 }" O( B6 ^+ B" n- k( @5 g
$ m$ u, h, [/ r5 ?' T, r& U1 U- @
% I( O  ~/ {$ z8 A  g
  ^. J0 M8 o' T+ V: ]0 k: |2 N9 q
组合使用方法如下:1 v2 Z3 N5 U! ~4 w* u9 ?

5 b9 S" B6 \: H  i- Ddb.user.find({"age":{"$gte":18,"$lte":25}})
" e) @5 _7 f* ~6 W/ a" e  ~
1 q/ h, |; c9 A$ M( Z- ^2 @/ @" n, [- R2 G8 a! l! Y

: S0 L8 @- k" E1 j& _# L4 t对于日期的条件查询方法:
# U8 \; O& R/ m' K0 c' V" O9 a+ i4 Z: \8 v' t& w, S  c
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
, `1 ^$ f& ~" S3 H% G
( D. A' E$ u& Y: H* D5 v
! N  n; v% S6 W* Z+ N+ a* B9 y$ b# s' \1 k! b3 T8 L, L
2) 不等于 $ne; R2 t' j# E( Y/ c$ E. R8 o

7 K- K' |# C0 [9 D! g7 ]6 C  J: A% |例子:
  F/ {  ^8 n( Y" Y7 R
+ `- K% r; e% g9 v: wdb.taobao.find( { age: { $ne : 10} } );/ ~9 a; e* y3 f: q8 r9 O
php7 查询mongodb方法大全
3 u$ X3 k' }, o- ^
游客,如果您要查看本帖隐藏内容请回复
5 z) |! i# {: {% X% [0 l3 q, B+ O

# P7 V) v) C6 R( y1 K' ~0 M' L
; _1 Y) _1 g/ Y
' B$ _1 v/ ?. F% _8 R7 H( ~6 }9 [0 H3 x7 E0 `
3 G  b$ a4 t/ o: I7 P: [

# H6 J: R5 T; x- H# V4 @: P6 k- `! H" u" J/ W) W
' g7 Y4 k5 x9 _) w( K# `3 l8 @) J

( ?9 l  \: W, J
3 i8 }9 x: q" [: ^2 s6 i9 h9 f7 s  o/ T9 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
- h+ D. c; Q, V
  1. //and; x1 k9 s' M) w. Y9 B! q
  2. {key1:value1, key2:value2}) c7 y. Y6 g2 W* {0 `( |: A
  3. [key1=>value1, key2=>value2]
    4 w# G# J  q3 O+ G3 J( W/ K
  4. //or
复制代码

9 g% `/ ?" s4 b! ?% `
. z0 ~: ]' R+ P' d5 e
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-5 02:16 , Processed in 0.059567 second(s), 18 queries .

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