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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
# p3 F( n. j8 s# A. a+ o- g4 a
( U9 p; c. G. {! jdb.getCollection('student').find({'age':{'$gt':'20'}}). Y& N; p& |) \4 i

% I* j# s5 P: Q1 X) a" ]/ B- ^- |

) r: M, q# f, v# w7 |$lt    <   (less  than )
9 J8 [. o% v5 w! i/ Y, K# M. o% J) g! R! h0 Q$ r' B
$lte    <=  (less than  or equal to )
& b4 `0 _, z! v, v+ e. _/ u( {  L' n. b& a6 u+ C. L
$gt   >    (greater  than )# V3 B  Y7 m/ v

* l: w/ {! ?9 {- G1 P9 G1 p8 u; n$gte   >=    (greater  than or   equal to)1 ^" P4 n' ~8 p+ H9 O

8 R6 {. v8 f  z
游客,如果您要查看本帖隐藏内容请回复
  j7 K3 z5 _' d1 z; x

& Y- ~! t# e: J" c$ne  != (not equal to)不等于  {'age': {'$ne': 20}}7 H8 R5 x+ r; i) Q# h8 T8 o( |
; ?2 n0 {& M/ A% u3 @5 @5 s8 K
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
) L8 r6 l+ T( v8 x+ Y; r
) _; d! C: j. i2 d) _$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list8 S- @  S9 G) M- N  L

  i& ^3 S2 P/ r" m( K* ^$ b7 _! k$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
6 B9 |0 R' }7 |* q+ c0 W) I$ L% Z2 @
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
6 \6 f! f4 |2 V' d' R/ l2 z
, n- y) ]2 A' \9 ^* M0 M$ p0 z- r$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
4 s; }! o$ p! {% |" o- s6 j1 Q9 G* E3 B
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串9 r: C6 g$ c8 v( l
& I5 y2 f. U4 z  J* J
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})2 i8 _0 {! U# O& G
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
+ |+ v: u, R( ?+ p% ]' S9 I$ e  ?( G7 @* w( ]; ^
$exists 键是否存在   {finaGoalLine:{'$exists':true}}& ~2 p; v2 N: k) V9 e8 o

& `8 P* a$ N* S& T7 z  t$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
7 S7 |) Z2 m. Y2 i: y0 R
1 x( f/ @( y) z$ p; ]$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
- c! m6 |9 ~7 k% b$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ! F4 Z; Q9 B' [) A; R
) }% ^1 S6 u/ F! v
, F8 F% g/ l5 I. _1 D5 L4 B, q
% w% u2 K) R# y8 ^# M: o/ o
2 A; Z8 D5 E/ N

3 u& T* Q2 D3 B0 i7 B( y
6 A; V' T) M  I* e* `' B; D
/ u7 k/ `/ [$ p

  w9 m' I/ l" s3 u7 \组合使用方法如下:  ~! Y; d# x- P' t# y

3 h! Z2 S/ b6 xdb.user.find({"age":{"$gte":18,"$lte":25}})
3 {4 }+ v( F8 @; W5 t: \7 @" p' q
! i& ^6 t, P5 a" }& M! N6 [+ S
9 S' d5 E$ x! V4 {2 K, q3 N9 g* e7 f8 U# R% x$ N( F4 e5 }
对于日期的条件查询方法:
" @! J* k. Q+ ?4 f7 E5 d7 g
, t5 ~8 }$ B8 p0 B3 O# Udb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})( u6 W3 `; W* a, c+ ^) r- T( L9 |

' D. x* v7 L$ k% Y" f; C8 t
4 M1 D, e7 `# t, L  i
6 j4 i/ K, W& Y2) 不等于 $ne2 Z" R8 `& Q: ]$ Q9 V/ i; I
  y2 P7 _9 F+ a( M: c8 B
例子:
1 \- K9 J4 [& p* X5 H; O: k; G" v# g5 i7 j3 E2 i- E
db.taobao.find( { age: { $ne : 10} } );
0 B' ^# u- x- z0 l! C  f5 T2 ^0 \, P" X8 `php7 查询mongodb方法大全
" B( }/ N/ V6 y2 U) P
游客,如果您要查看本帖隐藏内容请回复

) ]6 C" G" ]( i) q% r: U( C3 [$ U* c
3 b* o1 @! K6 I1 q* S; ]( s
. w' s, O8 ^. i1 i, Q
: s  _, ?$ J/ Z
' ]/ R  Y( U; T. X% e
$ ]( p9 L* r, f2 l/ ~- G
% n1 G& X1 A# a$ L
6 y7 h$ F3 m2 v! S0 F6 ~4 C% E7 B' \  |9 _

7 R  m+ d0 d/ x- t, l* f4 N4 q7 [8 \+ [9 G# V* c( V

; g5 l& h3 C( E9 a8 V: n. j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or; k) y  {7 _$ z& `% U$ o9 J- d
  1. //and
    ) M7 I1 n; w; J0 j* @
  2. {key1:value1, key2:value2}
    / Q) V. _) W3 K9 q$ R4 ?) s; }1 h( S
  3. [key1=>value1, key2=>value2]
    3 S6 |, s3 ~# ]. A/ t$ [
  4. //or
复制代码

/ T5 M  n- j$ E8 K# \, U, c) o! o7 p" G" t
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 16:41 , Processed in 0.132063 second(s), 18 queries .

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