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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
6 R( J% t0 ]  s( V# Y  |, m$ p3 E; I1 v- J' E4 ~9 d) ~
db.getCollection('student').find({'age':{'$gt':'20'}})( c3 E% t: Y4 z1 `: R
# `) W, y! b7 |/ l, A7 }' n+ k
+ i) J( U$ \& C3 T  j$ W( U

7 ^% ~5 M, j; {  h$lt    <   (less  than )" B9 i; {/ b+ ]' v) s% ^8 v

6 Z% n0 q4 u6 s% Z8 [5 \$lte    <=  (less than  or equal to )
8 X: u( [; }2 C$ Y
! ?$ u$ D+ L; I( s+ `# P$gt   >    (greater  than )2 N( c% ^; \+ c) f  G! a: v

' N& |/ G- C& x' o1 \1 [- W$gte   >=    (greater  than or   equal to)
3 i5 ^: _- t7 p( N9 x. q; G0 v8 c; b+ }* H8 Q9 {  M' K- U! L
游客,如果您要查看本帖隐藏内容请回复

8 u8 x. ]% K8 Z1 i5 ]2 B) l- j, g2 H1 w7 P: C) t
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}$ s2 @; ~, ]% D. ^3 g8 a) K# q

8 q* [0 y2 K4 ^- O$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
3 l- f3 e) I" C, D
' q! {3 w, Y# `2 l4 k: q$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list4 r2 s  P( @5 R2 g- g$ U

, r9 ~  m0 V/ [2 P, z* g$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字9 M1 y9 b+ i1 T+ s  z: t6 J+ `: ^

9 K' j. ]- ^/ L6 I% b! x$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
, m) V- n4 j7 k  w/ S) r6 Y$ X: v$ {6 m* l1 E" [, \& q7 |
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
. u$ l. o2 u- Q! S6 {
- |! W% U6 \. p) R) C$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串9 T, U3 d- U2 P$ |9 ~7 Z( F5 ]
% C7 O. C+ w8 g7 [
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})/ d+ _) h# G3 [3 q4 M5 G0 E
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
; V5 O) T( K( w# x
8 `/ i3 h( n& K4 \3 D$exists 键是否存在   {finaGoalLine:{'$exists':true}}
5 P" [) q* m7 \2 E7 {/ K. M
2 P2 ]* ]: g4 R% b  i, a' ~' N! `* S$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
. S2 ^# l3 q7 V/ b, ]. r5 g1 I4 w2 _3 b; W/ T( k
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
4 P" \: y% J  B' @$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 5 e: p/ Q: c4 m  J
' Z7 q7 M* u; M0 J
1 H/ t. }1 R$ v2 H" |% w
4 o/ [* r' G# j" h$ ~) C
/ \- w. s: e4 G& C7 B; y: W
6 n( ]' U/ ^5 H: T3 t  J' c1 Q

% ?9 w. u: K+ l1 y1 o/ J5 B+ w
& P5 U1 Q, x$ W9 V
- O4 N7 Z4 V, s. E组合使用方法如下:
4 D+ F/ z6 a9 N( B  ~# h, o7 A4 {/ v( ^0 h" R0 e! [7 q9 h
db.user.find({"age":{"$gte":18,"$lte":25}})% l9 @, H* r( o" M

! q9 N2 J& ~" ?
  s2 G$ b6 X, n" `% l9 F+ H4 G. y
; g# y, n  c8 C& s对于日期的条件查询方法:
6 F2 Z/ M. ], H  w& J$ u6 Y+ H* _( [8 s! |. Y; w
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})/ R/ G1 J, `- A0 G" x
" b1 S, r$ b6 K9 O' g
# U* F) r! C" E  S. N7 d( B

) B9 `# w, D+ `: z; Z5 h1 ]2) 不等于 $ne
6 P( [" j; \. [! G$ k6 S
) e/ j) {; m! K5 C4 h! b  X6 ^2 |例子:
  C2 B1 Z1 b1 e+ _' y8 L3 E1 _& n0 S, D8 U
db.taobao.find( { age: { $ne : 10} } );# B) h3 N# G$ d5 f* y7 G
php7 查询mongodb方法大全
, k* d% a! U/ k+ k5 N
游客,如果您要查看本帖隐藏内容请回复
4 {2 c+ ?( R! K0 m5 G! W; I, i
& R7 Y3 f6 O, M$ X( o1 K

, z1 N" K# P0 r! ~) [
5 j  q, r+ H" y5 Q0 J$ t% C- z% g2 S9 V1 J  W

: o0 N$ ]0 T9 g# O5 m) g* e& I( R
1 f  x  A) _  B; i) ?$ a
* }$ D: J# `3 b. W5 W) @( z! p; S

: [/ I. c/ \; h. E1 t
2 {6 ?. i7 r4 o" m) D( i: L% o
" _  q! S! c; V; w, Y' N; I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
  e' B3 U4 W) V5 E
  1. //and
    & D6 x% Q# ^/ F) Z* g0 f4 I' k
  2. {key1:value1, key2:value2}
    . C) T# U0 F3 R) M8 y5 P
  3. [key1=>value1, key2=>value2]( I) P( U. u- u* ~
  4. //or
复制代码
7 C: h$ _  ]7 M' s% X
) {6 m6 e7 G) x7 `- x$ z3 z( U3 U% J" Y
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-7 17:39 , Processed in 0.120405 second(s), 18 queries .

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