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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
查询表中学生年级大于20,如下:
* t: w1 n0 I  D5 N8 a! Y1 D, e7 u6 e" D% V( W
db.getCollection('student').find({'age':{'$gt':'20'}})
: N: k9 I! l6 k4 ^( E! A6 U
0 V. L* N2 i; X: j9 ?* P# P: U/ F: E% A$ u! ~% ~+ f% l8 d+ r

3 a0 T6 ?" w5 w" {) a0 @$lt    <   (less  than )  Q& j. \% a$ b2 v3 F3 q

$ N5 s$ {8 F1 c$lte    <=  (less than  or equal to )5 {$ K3 s" [" z0 r3 M. i
0 I( y' _5 ^) }7 ^- {( d( @  F
$gt   >    (greater  than )/ B7 D* w3 o) D$ n3 D8 {1 G
9 \2 w, m% X* q1 l" K
$gte   >=    (greater  than or   equal to)
5 x, R0 p4 R  B+ O* @. m8 v% z& v' s( U- \9 j( q
游客,如果您要查看本帖隐藏内容请回复
( ^9 X* F  k  p! K/ q7 i
  C/ r5 L- d( K/ K
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
: @* p" ]9 L- x4 J+ [1 _# U; g. L  t8 z6 K; I
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
! c+ n3 X$ s/ e6 ]6 J
( G3 x4 e" u! h* O, F$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list' s7 N$ h( p7 i0 W, a# S

% A; ]& T: C5 X8 R$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
5 e; [8 ^' |5 |6 c9 z- F( X4 B: B' o0 a) H% x5 J: \9 y
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在- ?# C% o5 P! V) I) g/ f& ]6 A# b

' f/ P6 Q5 m/ V& G" x# D$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int2 c, L* Z. `/ I3 y6 r% {( V6 V& }
9 W4 A2 X! _% d. E& v
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
: c5 F+ C: s, A1 S- p) M
2 X% z2 z- u: I- T% ]$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
4 C# X' P% g: z; a$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
, u& p* {& {6 T; o6 u
* b5 c( V4 d/ b0 n3 D0 q$exists 键是否存在   {finaGoalLine:{'$exists':true}}* H/ \1 A* C! \- ^

. u; r* `: Q& W& D' n) L$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
* s2 X: u- l, H3 D
1 H8 [) A6 f9 T! S% J$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],0 \# m3 |; ?5 d+ m6 Y) G: i1 `
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ' [% C/ D1 F1 o9 @6 Z6 _9 ^3 z
/ c( b( A3 j5 L$ X' @# a

  R8 {1 \2 x* R
4 B* K7 t, o2 H( P5 m

" l9 m6 e' D' c) n1 V
  D3 L5 m% O  n4 L

# `* S- \6 A2 I9 b5 K  E: d7 P4 D% [& {
6 Y5 \2 k, {# Y" |) x7 d
组合使用方法如下:
& U+ T0 O, g2 t9 `& X1 m
  W4 D& F, u1 q" Z7 ydb.user.find({"age":{"$gte":18,"$lte":25}})
0 E1 u" [5 P- e6 ?0 F  ~% H$ ^$ d
8 _4 N, D: h4 ]$ N9 g, ]6 ~0 @2 k9 z1 I/ o" L9 c& A/ i

- P/ U# g" k* J对于日期的条件查询方法:
7 ~) l4 {& U3 U- P! M3 l1 B0 ^- x+ u. C: X2 r# |8 w9 K# u
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})+ R' f$ y$ ], \6 R& F  c2 M. q
- s" |, ]% x$ {
% h% D7 ?$ \' A6 g$ P

% P# g$ E- w1 O6 z/ |' h% }" ~2) 不等于 $ne
0 ~6 {' Y3 H6 x, ^, ]  W& ^0 Q$ @+ U% D1 j+ M
例子:
. n) p* _  z/ Q. [- n
4 A" g2 M, F- o) h# {db.taobao.find( { age: { $ne : 10} } );% V% ]" f! f; e* [7 [3 s; G0 l7 A
php7 查询mongodb方法大全/ K* f; g0 a) i1 n; j1 @
游客,如果您要查看本帖隐藏内容请回复

- B2 c0 c1 R) Z$ M$ O
- s/ Z. o% e0 K" _, \3 O0 ^3 o$ N; G3 {* ^, A; A$ |
% S9 F8 ^% W. M& b* g4 f$ L

! Q* q! m$ x7 G5 c- h1 j; O2 J& d
' Q. C" V- T- z+ f1 @  O% j2 b( C3 }
. e! P2 M5 U0 z; p

3 P% C8 w, z4 H3 O* \( d, ~! u6 }4 |
1 l" o- l" R& F! d# F+ L

9 Z  S9 ~9 A0 F2 s& f  j" B( j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
: m# c; m% E6 J! t
  1. //and
    1 o8 O5 ]9 Y0 X8 H0 m' c8 S  U' S
  2. {key1:value1, key2:value2}
    1 C8 E. U2 n0 W  c1 U; e) M1 d
  3. [key1=>value1, key2=>value2]
    : Q2 H0 h, b) J
  4. //or
复制代码
3 q* v0 T! x9 \
- \9 b5 w, R; P* z; @
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-7-1 21:16 , Processed in 0.129184 second(s), 21 queries .

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