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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:% ^% ^$ k, U: _4 M. O
' `. X  d9 D: [5 A9 ~4 z
db.getCollection('student').find({'age':{'$gt':'20'}}): q" Y/ u# r2 p; D- I3 g

8 `* k* P. H3 h% k  v
3 ]: S- a' m' }- [. l/ `" r$ W4 ~% D5 y
$lt    <   (less  than )
# u+ X% P2 `, Y+ ~: C
' `4 a) \5 ^# M! P. k1 W7 @$lte    <=  (less than  or equal to )( t) V1 z3 E) `9 I

9 j( g" F4 V. j9 I; g2 q; O$gt   >    (greater  than )
( e. W; i9 M1 S! W9 D7 p1 i; \. i4 J7 H  F4 D! r
$gte   >=    (greater  than or   equal to)7 p( I1 y3 D2 i0 h  H# I
7 [4 J  f, ], g: M$ D
游客,如果您要查看本帖隐藏内容请回复

: q2 e0 T! M% D( x, W- N! e  R* v7 Q7 [
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
3 L9 [) z) m# w+ m, K
! H! \9 t+ s5 Q: [2 e, a# G/ m$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
, g# r/ s0 k0 z- x4 S0 T+ \6 T: |) [( U  O2 a
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
# |% L+ J1 I, h- h- ~  U7 K1 x/ Q7 D6 F$ I! T  [
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
4 H* a2 {6 _/ H/ G" ]" s; ?* n& |; q* Q
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
3 G/ ~- ^! w8 `, v
: p! I( e- [4 c7 u$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int$ f: K4 @2 p7 ]

- a. F' r7 p, g6 Q: p! m7 Y. _0 j$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
0 z8 e5 d4 Y. b! M  D8 V4 U- h& F8 q& O# ^' _
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
' P4 ?9 ^/ e# W9 ~# \$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
% Y# V  j& P' m! O9 N$ o8 L& M  n1 \0 _
$exists 键是否存在   {finaGoalLine:{'$exists':true}}; K% B6 l* f6 @

, k& x+ C) r% J7 o# N! r5 S& G- k$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
! ?3 P# _" Z7 b  s) D9 ?% H% @5 F9 t6 |5 O! a
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],* Z) K4 ~. k/ l. g. z' f8 f
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 * I) k. g+ {6 L. w, t, h

7 ~& i* t1 c3 W1 }& y0 R8 O) \

0 W/ v9 Z2 s& _9 `/ X4 I0 O) k+ U+ Q5 K
  x  A5 z. ^; \/ K# _0 z6 N
! `" o$ |" @9 }) \! [: o# ~

4 q) [* _5 `9 G# o( g% \
  ^3 y* U9 B0 e$ b
- Q+ E9 s% t1 i: a2 ^2 t* e

  e5 U0 y8 x9 ]4 |7 r组合使用方法如下:
1 r* @$ A0 i; @4 y7 K- v7 X7 O- O( V, f5 D+ ~. D! }
db.user.find({"age":{"$gte":18,"$lte":25}})2 |+ J# b$ Y  u& B% M
' q4 l6 }' ?4 }1 U9 E
5 V- e0 n* S) m, Z) s; r0 z

- X4 L9 q/ c" i" E9 P) D对于日期的条件查询方法:
* Z/ [( L! g3 o( Y3 j; L( U& n7 @+ ^+ T$ h5 c
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
/ g9 }5 b! U3 h0 ?/ F
0 y2 L& U8 J$ O: h1 O4 J: M: O2 K! N6 I6 E1 Y3 l
/ A* W6 T$ F" g" H; |) ]" H
2) 不等于 $ne
1 m# J0 ^+ y" \$ J- r+ ~4 C# q; l3 ~: w% E
例子:
8 l2 k9 y) t8 r* b; t7 S' g6 I3 [! i1 B2 p+ s
db.taobao.find( { age: { $ne : 10} } );
; C( x9 h7 O! ^php7 查询mongodb方法大全
! y( _! h0 ~: Z$ R' D
游客,如果您要查看本帖隐藏内容请回复

3 k9 x3 F8 G, z1 g+ E: q2 m- a. t! p. r0 ^* Q
2 f: ?$ q6 T. m8 m

! A7 |# E7 C5 B2 N9 _+ K+ i: H4 y7 N& `

8 _$ G- v" f9 w9 f7 a# J
& N. N. _, l: U8 \3 ?' f, \! g- k: {! }! c% l

# p1 P9 E8 y) s  g: V3 F
- U! e$ M) S, C- |+ `1 s' O8 W. z. T/ i& w# L/ \+ A

+ o- r+ v, f" x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or- B7 b8 P$ ^: T. ^% P
  1. //and+ L  d. C! K5 Y
  2. {key1:value1, key2:value2}
    / {% m" H" E  w% E% D% H, g
  3. [key1=>value1, key2=>value2]
    " |; w% r9 J' z# A8 G
  4. //or
复制代码
; W. \$ r$ O, q( ^

' E( L9 y7 D, j! q# D
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 10:06 , Processed in 0.056423 second(s), 18 queries .

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