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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
查询表中学生年级大于20,如下:
+ z9 h* ?" K$ C3 J+ b4 I, }" a$ L5 i9 z: Y  T/ c6 h. z7 R$ [
db.getCollection('student').find({'age':{'$gt':'20'}})' @, C5 f; n) f7 S5 m* ~4 \

, L/ |! L2 e6 H2 ?9 }1 n5 E* m$ a6 }2 j6 j2 D: ^

8 n+ M5 s/ n8 J8 L. p$lt    <   (less  than ), e+ f7 g, |* J- F- e5 q9 p
3 h: V- a$ X( D- r% h: i
$lte    <=  (less than  or equal to )
- n* F' N( h% m! \: m9 i8 V, b% J
$gt   >    (greater  than )
- r# ^+ y$ f  i/ U" \) S, H
; @$ z" w' L) P; }% K$gte   >=    (greater  than or   equal to)
7 {: @2 @9 q+ [1 g# S$ ^& u
$ L* V) d$ t( P3 U, ~6 u7 c* m; M
游客,如果您要查看本帖隐藏内容请回复
) _4 u! F4 Y! }$ \7 X& ^
6 e: `' K) e. Q8 c7 u
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}3 ~0 M9 u+ V2 X, {! r2 U8 S7 I! z
8 Y$ e7 f% C. @
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list' J1 d3 z* m8 ?9 x" w; V
$ @5 S) y2 j) W, _. \9 ~0 y9 v
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
* r* e  Q% u2 }5 q7 e, w" z7 H+ F
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
& Z2 d# F8 e- P7 K& w
4 X9 j' p) u" r/ r0 }$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
( B% V1 `( C  e. w1 {  Q
+ f2 \1 M) {0 A9 w; ~$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int  ^$ G. T, q0 ]' P- B0 N) n. O

, W$ c: L. A/ ]  j8 k4 K$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串: X7 _: N" `6 I

1 D- b% t' u; Y$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
6 l' g  E( C1 ~8 W8 L% Q0 I$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);7 x$ C7 L3 y* `( F3 O' u' b2 c
* m5 h$ L$ n6 C6 [9 x1 `) X
$exists 键是否存在   {finaGoalLine:{'$exists':true}}* N! v; P- _+ Y! Q  Z
, D/ i4 s6 ~- t$ b. P
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
4 N9 S' }- p  [. j6 ^9 Z6 X. e4 u+ I7 O0 e; k- M6 R
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
7 R( I0 L6 I( d4 R  a7 c  \' X$ f& V$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ; R2 i& y8 E3 T+ c, i$ b5 G
$ s, l! ]  Z$ {/ C' W# _5 r
$ m- M: ^# ^, k' ]) a5 n4 O

% e- |) l9 W, l
4 L" S  _2 ]7 l4 L
, t5 L, c- a' w) M* [: U2 m! b
5 o3 ]6 i7 t9 m0 `

, A/ ~/ G# a  o9 C& c3 e; P
0 S! Y& I  B9 Y7 B# f3 C/ M组合使用方法如下:/ O9 F6 |& l, k4 Y5 R

7 m( d' o. [6 ?; H3 n* Cdb.user.find({"age":{"$gte":18,"$lte":25}})
1 ~3 y; ?4 @9 @7 P! f; k+ b& \
9 t1 }$ y. T5 Z4 t2 j
0 w* i" {1 W) [) J& I) i7 X; t
1 s* k4 f" R' W对于日期的条件查询方法:8 X5 U3 d( C5 @4 O: C8 B
# k% @% w3 n5 }
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
! `8 a+ y8 q0 T, A; K, w) m5 p7 }% u7 p
! k# F: b% L- g4 d. N

2 z. @! u! _% O9 d0 h% ^+ o2) 不等于 $ne
; N' L. r  D- X" A: p# R7 m# h8 ^1 S' c- e- i6 d
例子:# }+ L& G( s) F$ Z; r

, L* x$ Q& U% Q' U, Y4 {& edb.taobao.find( { age: { $ne : 10} } );. }1 M/ f+ U( @( t2 f5 @, f( q& O4 F
php7 查询mongodb方法大全
. F# G2 \+ ?5 ~. a% i
游客,如果您要查看本帖隐藏内容请回复
2 b3 c7 C5 z# X2 [% r

( A' ^" T5 x$ |! g9 X6 X4 J; ]. H
' G+ t% u, x9 ~# }0 y8 D
; G8 |! _+ G' |8 G* t. k* n
) J. {' g9 n% }
  C- a% i9 j  c* W/ O7 L. D& N- ?( c: a8 E+ d6 z/ k' ]

: U2 h3 z* o8 z: R& L  k# A- P& c) H/ L
" I" n' C* T1 n4 v+ A6 P
; b. I- h. l( E( N/ @9 T
& o% l( a. G* b0 e: i; W5 E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or& C% H4 o$ F" b% H4 _) S3 Z) m5 K
  1. //and
    - s2 w* G" t8 _( e* _
  2. {key1:value1, key2:value2}0 K' }& G# Z6 l. x; l9 j$ S. h0 W
  3. [key1=>value1, key2=>value2]
    & T5 H" ]9 F% y
  4. //or
复制代码
( h8 \0 p- }7 i; A3 b

. s8 T$ C" i# G% N) B$ [) q
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 17:34 , Processed in 0.065252 second(s), 20 queries .

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