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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
" r: ]. M) q/ `( B; `2 H& m6 ~' W
db.getCollection('student').find({'age':{'$gt':'20'}})' A% n/ k7 o7 q6 M- a
) m4 U8 y2 G" A/ d1 l; [3 H; W

. e; o% j$ H0 Z' _9 s7 c" l( d4 i0 K. @0 ?6 n
$lt    <   (less  than ): ^7 b: L& u( d) U0 Q

$ L& W2 x1 @# q# @. U( M  e$lte    <=  (less than  or equal to )
4 V! T$ K$ w& f* ]0 ]* O: h$ x/ w2 m) b! |" V% |
$gt   >    (greater  than )
! [6 E' r* W# D1 a7 {% [1 o, ^2 g0 c( f8 ?, m  j- @
$gte   >=    (greater  than or   equal to)
# s2 X. J2 B, W1 |5 G1 R: V+ V& y2 c
游客,如果您要查看本帖隐藏内容请回复
6 H9 F+ A$ O* Z  w! Q- V
4 ]9 M3 l  ~& h  L0 n
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
, E8 H+ _7 p9 P- o8 A+ N. b2 h1 W$ X  p: Y8 o
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
/ Q" R# i# y4 k. n
8 y- x; s. Y) M% D- ?6 U9 @7 y) m$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
, R3 A8 q6 h. ?1 h2 Y
# X, W9 x0 `/ E% r' B6 S% c$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字# a9 |. n, w; i: I

( J6 ^/ E# N( y$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在" M5 c' O" S. R9 K  g0 q
9 Q$ L: m  c7 q; A7 O9 o! Z$ n2 n
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int: T2 u2 J& S+ o& Z( u
1 H7 `- A1 m' c# a
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
* T9 ]0 C) G4 b% \2 P! K9 k2 Q, m5 }' I6 ]5 c7 N( p" \
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})# M7 j$ }, A. b* S
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);+ |; ~& |5 m( l& y: ^5 U, r: K
3 P7 }' W* o  h1 ?3 J' u3 q
$exists 键是否存在   {finaGoalLine:{'$exists':true}}3 ~  V: u0 Q* `
) d: v. S7 U5 F" t8 R3 K) v; U
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
' s- ]7 P$ |/ B! N5 q! S; j1 T, f7 t  Q. Q
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],. L3 a, _5 T* L
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
6 K  V; z8 [( p$ w7 {: F& ~* c) {( ?

0 ^' D* y& M4 ^1 |7 A9 R. L0 E+ z; w6 q. T, {
  d# W0 l" a  D. m- @

' M! R3 ?2 {. `8 Y1 h1 `- }

4 q; T' J. K3 S( m# t: k4 h2 ~& l( q
  f: J3 g) `7 s6 |" `% Q! C8 Z6 n8 R; P
组合使用方法如下:
! y. k4 M" X9 h: G  z9 b8 ^; R7 B+ ?- N9 v/ F+ Z
db.user.find({"age":{"$gte":18,"$lte":25}})
: y4 O2 Y! n, P& e9 J  J# b) X7 C, W9 Y" f! k8 N) u

- t1 k0 u) F6 w, y1 N6 U4 T1 y/ N6 p) X* H* I
对于日期的条件查询方法:
1 I7 ?0 P' j& T) Z
6 L" _# ?( g: I- w* Fdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}}). p; S* M, x5 s" O# l
6 }4 g' R$ n$ J

9 q7 C0 F/ |' x  U
6 E  }0 X& Q/ h+ J5 K& S; x2) 不等于 $ne
( W" G/ H$ u( x2 b
/ E7 x5 z1 X  q5 ~例子:
8 U# {- I1 H+ C# T9 N  {5 ?
5 f2 a! P* ?* I6 V, Cdb.taobao.find( { age: { $ne : 10} } );! m& ?/ S9 K9 l7 a% ^0 G
php7 查询mongodb方法大全& i7 R/ I2 n+ Z( K( D) r
游客,如果您要查看本帖隐藏内容请回复

! B1 ]+ l- V7 i+ \5 o- x1 s& ^1 U

5 Y! E: @' C8 A6 f9 W8 D
! |' u$ Y( y( K& C, n9 U3 t. j' ]$ ], b

* n$ S$ w: n4 L1 n9 J& Y
7 [0 ~" f$ _4 J/ w& v* A
& ?- C8 }# [. S7 _: P; [% A
  e' E+ r# V; K1 W5 r, `2 @2 {7 i) W+ a* l
: ?* g. M0 t% i2 V2 }

7 h9 V4 i- }& X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
7 e4 W8 j/ Q% v1 ?. i$ P  p3 t- B
  1. //and. L2 I6 `8 @, R% D6 ~
  2. {key1:value1, key2:value2}1 N' u2 |1 s/ ^
  3. [key1=>value1, key2=>value2]$ v3 Q( h# x3 x5 ~2 \
  4. //or
复制代码

( r$ U# c) b$ {' w. Y- O: w( x% ]* Y% t/ A( C& K) o$ _
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-6-2 12:15 , Processed in 0.115072 second(s), 21 queries .

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