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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:. ~6 N0 ~/ j2 l% n

4 ]) A2 E& w' W$ n0 V# e4 odb.getCollection('student').find({'age':{'$gt':'20'}}): @& A0 K! @% S5 G6 T
' |" x, K) N9 Z5 V, C5 ]% V  y
9 V+ `. u/ N4 G$ V

3 F  j+ M; Q* E8 @" H5 K% {& @$lt    <   (less  than )
, p6 u) b3 |0 J/ k% n3 Q- U
1 Q0 x; X; i: R6 Z* L$lte    <=  (less than  or equal to )
+ ^/ I! ]$ [5 G5 S/ O. o- ?1 a( o7 g' ^3 _. p$ d
$gt   >    (greater  than ). @* J) b) h; w7 k( J+ w/ |$ w5 K
& i6 m% I) W  ~( A% K* n6 S
$gte   >=    (greater  than or   equal to)6 H5 t' @* ^9 A

# r+ @) m! |1 d- x% b2 v
游客,如果您要查看本帖隐藏内容请回复
' y3 v; t$ G( x9 h# K

3 y3 Y% x% U8 S6 x* k; B$ne  != (not equal to)不等于  {'age': {'$ne': 20}}4 b, j6 o) V  ]# [
5 k/ c1 n' h5 b& O7 L
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list: A) D+ C$ I1 p# J( j

- X3 a+ L, O  o3 o6 G0 Q$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list1 m% O1 Q, ]! f7 K% }- G

7 p. ~* x% q& U$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
6 J# s8 v4 u7 ^, X, u! h) o3 g- q$ X% G& c+ B& U
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
2 Z& b) c/ r/ H" C9 @+ |, \( m8 I- x8 ], o2 a* C* P- I# J
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
& G# y" D( Y  m- f4 R* J, N7 k9 g
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
% j8 x) s' `" W6 u) o( J
. n: }" Q/ }$ C$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})* N+ T! w; E3 b5 O& j: C( |
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);* |7 t# M! A, s

. V4 O/ x( p8 `" z$ D! `$exists 键是否存在   {finaGoalLine:{'$exists':true}}( @9 C' l; O, h( K) y' F2 A: `* ?
3 U4 x9 B' p% N/ R* C) g6 Z/ e$ X1 T& x
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
2 f' q0 w2 X% n# _) U* k& n0 S, ~8 Q) P7 A4 B& p9 Z
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],1 z9 @  _& K: B9 a
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
$ K1 s( ~$ p( a$ B) c
4 z1 d0 `2 d7 `, q; `& V; w! h, z0 ^3 R
. b; h8 D0 s4 f4 C
& n5 p% x! Y' F- P  h& x
$ t& @6 ^+ C$ `7 Y# e2 t
  z, K5 [( Y/ N- N# L8 I- _

" @- @( S' n: Z1 q
0 e9 T: @+ F- I1 z, h" I* Y* |
, d# K& J) i2 E; p% M组合使用方法如下:7 q9 m" s& f8 {, G

: x7 g/ i+ J$ J/ V* I  |db.user.find({"age":{"$gte":18,"$lte":25}})
' s- r( I( p) t% b: S' c7 `0 r! |9 Q2 E) X- [

7 L% Q6 i* J( o2 ^3 z, |! O- U: S( g7 Q1 Y& _
对于日期的条件查询方法:0 W) L+ d! {3 }2 a- W

: z4 J* U( k3 I: cdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
) F( a& ?: |/ E% [. K; p0 l% |& R7 y& [: U

# D/ v, f; J" }! Z9 X0 o% J1 a! U9 l! y9 g, m/ u
2) 不等于 $ne
$ q8 Z- u1 N, d% @) S; z9 e9 ]5 Q
例子:
9 T0 c- K; ^3 `' E$ l, z6 H3 z1 x4 i, a/ h" p3 F
db.taobao.find( { age: { $ne : 10} } );
2 }8 ~3 I4 ]( Y$ W) Tphp7 查询mongodb方法大全( s/ G9 _6 A( C: g
游客,如果您要查看本帖隐藏内容请回复

6 G' Z1 P6 |' L! W5 }) O% v
/ V: i; l" `6 O4 i' h4 r
1 Y+ Y9 N0 n; G: [# ]
5 H( D& W! Z; m0 W) ^; r
) t. H; F$ P: }7 ?5 ]; q4 M' t+ \5 Q1 ~! _

/ h' q7 r- `& i
: k& G8 o5 I9 W, q: [: c; R$ k3 T6 a  P. T6 t/ M' H

8 H9 k7 \+ }9 B4 _# s' L5 T
4 z: b+ `6 D  X; [4 F/ P* M) o: V- ~5 V, w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or: A7 P, Y- v' S* @3 O$ X8 q& m5 w
  1. //and8 ~. j- D4 K8 Q/ M+ K' u, \, d) x
  2. {key1:value1, key2:value2}
    & X6 d2 B$ N4 u: f+ y+ Y& \
  3. [key1=>value1, key2=>value2]0 t; f' S" X! ]# E
  4. //or
复制代码
, X0 z1 b; B' D% I' j4 M

. J- ?; t! m* t4 F( `4 O; r
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 19:54 , Processed in 0.121569 second(s), 19 queries .

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