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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
' M6 d# \. s# a9 [$ Z' m) V; l$ x% m& w& A; f, w, ]
db.getCollection('student').find({'age':{'$gt':'20'}})/ B9 p0 T; y! q9 I

! [8 e+ K4 U% q$ C" G1 Z9 o' R5 k9 S9 f+ b0 b% J/ S2 I
; F9 k  w0 x4 r. U+ S0 e
$lt    <   (less  than )( w% r0 U( L- K8 E

) z9 H5 Y6 H/ P3 R5 a$lte    <=  (less than  or equal to ); H$ G) u9 q3 Y* j) @

4 Y  w$ C3 {* z$gt   >    (greater  than )
* i; f) z0 J# b9 Z
+ E/ }) a: F1 ?  u9 |8 W) C% {$gte   >=    (greater  than or   equal to)) @% t" R  M+ g0 S6 V/ P

7 T/ F7 O: g( v' P4 @
游客,如果您要查看本帖隐藏内容请回复
: k5 f' x  `/ ~. S& @7 {/ |0 {

- N& M. e4 |. j& o# ]$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
4 F. j# n7 \6 q( ^/ h5 F
* H! L9 ^  n1 t$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list/ G3 J) f3 t! y7 ^& J3 \+ X
+ D$ l. v6 t# S* a. u
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
1 h& J( F2 Z, K7 {6 w; n3 b
$ V1 b4 c" v8 S- B$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
* Y# ^0 j! r- }2 v6 F9 L1 `7 T' I4 ^6 }# g
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
! x4 T$ d$ _9 g/ }
& B: L& p  E; b5 u$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
3 r, x) U- i* D- `# ]
% V& A. ~5 z) b# C2 }7 m# c$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
( N4 R4 s: F  s% H, X$ K+ Y/ T+ i1 U8 I0 G
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})+ k7 M0 h. J( h) h" [' j" D
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);, l% K3 k  W+ h

; ?  |9 g: H# v2 f- \$exists 键是否存在   {finaGoalLine:{'$exists':true}}* v$ _- L! u2 X, @" Q

2 v9 N# ]6 o3 N. U$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
: e% }3 S! G$ R# U, t/ w! i4 N2 j( H7 R5 h* ?3 X# q; ]. [% v) q
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],& W! V) |# O7 g0 j
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 - X9 E+ W0 g" _9 u: F
: N1 I! T" c1 J) _' t) P& M& H
; E: V' m- _% i2 ?+ I" R
$ i3 j% p7 d( ]* M' |! b
1 m6 u- Y$ b3 f6 L3 [4 T

# i" B. U3 n! D0 I

; i6 b* k. h9 a5 M+ g" o3 k. g4 p, O, i' Q  ]$ g- n+ z
3 q* O8 i5 O  [- x) F  j' I
组合使用方法如下:+ N- O. B; {1 w

* ]+ L0 Z; R1 d) M: O: mdb.user.find({"age":{"$gte":18,"$lte":25}})
# v" x# Q( z8 e' L8 d  ^
* u1 o* E$ U) b1 Z7 w! E, n1 A
/ S; E6 E: B  T( x" X+ t2 T/ h( u
, m1 C0 L" R$ ?" q8 d, }9 x+ G( ?对于日期的条件查询方法:
9 a' f- \2 e9 W8 m* o+ O9 v0 _5 H* U# k) b. U# l  G9 i9 C; k1 K- G
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
7 g1 q# j" V  f2 k/ O  E; i7 U3 O

4 [6 i  B1 l; k0 s! x
/ V2 O* t! e; j# v! k2) 不等于 $ne
1 o. {6 Q# n0 n; A; e0 W( D- K& c& K& ^+ H1 O( ~8 \
例子:
  p! x4 T, h; ~7 \6 M# m" a; j+ O0 e' \) U; [/ d' B. G
db.taobao.find( { age: { $ne : 10} } );
* t6 ?6 ?4 A* Qphp7 查询mongodb方法大全
. i$ D4 C7 O9 D, L, {7 t6 j) j
游客,如果您要查看本帖隐藏内容请回复
# {1 }* D6 G  @# [7 Q0 _) ?# ~
! g9 W# U5 M% W( q7 c

9 q0 t6 ~  k9 ?% b. Q# q/ [* V( {4 k, m
9 J2 _/ H4 I) u
* U: t# P: T9 I$ D% s, t! R& _

% s0 H, |, l. E8 K8 @- g6 k6 o) Y, ?- E( A& s" Y3 v$ I
( }0 `, k7 u$ \& h
$ Y- E' s1 m8 e  _* k
/ X- Y; }$ g+ J
2 E6 w" c, S7 _$ Y+ {$ {1 ]' [1 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or: @! C  d2 U) R# J7 A
  1. //and
    : ?8 q7 J8 Y' T( c; b+ C; ^4 H; C
  2. {key1:value1, key2:value2}6 k9 N2 d% |; ~& W4 f3 ]
  3. [key1=>value1, key2=>value2]
    ) T- i- V. J" J
  4. //or
复制代码
9 i8 O6 p$ ?9 n. k3 b
$ v1 u6 c7 V2 F. i" C
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-22 04:12 , Processed in 0.057328 second(s), 18 queries .

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