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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:) f5 o+ f, I" e( F  T1 w

6 a$ T# p  ]7 Z# @, R& hdb.getCollection('student').find({'age':{'$gt':'20'}})
4 W4 _4 [8 z) r1 y$ L0 z, b5 o- m( O
& j* w) B/ I4 ~0 E8 S" p1 I9 o1 e

- q6 d3 Q5 h) A1 @2 i$lt    <   (less  than )
/ G- Q* p% u; W+ H! T/ }+ H7 j' \5 v( z8 G& }' s* I' e: x- u/ `
$lte    <=  (less than  or equal to )
  z4 R& O  u' m2 v$ n  o  b
1 L; L7 t& ?6 D: ~! X$gt   >    (greater  than )
5 I6 l! Z1 E" U& V0 d  X- o; F
+ ?$ f. v* d- I5 T5 e& n$gte   >=    (greater  than or   equal to)
- A3 P7 z6 f6 w, P, i" H. _" O# H" y; _4 V: L( D
游客,如果您要查看本帖隐藏内容请回复

9 Q: F9 G+ p( z2 l3 Q+ @) Y8 {5 s; R4 E  T/ G5 r
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
8 G. a4 W5 a; l  d1 ~2 r# m" t4 r
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
" c% @( v( O1 S9 Y( k. I, [! d, r# d2 k0 y6 B$ ^
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
' n. a6 e1 m, u, @( ?9 v4 d! K6 S0 p2 |& v( W/ |8 |6 l) l- p' X
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
) e. p" {3 z8 B: c" ~  M$ L1 w( A: a' U' C, J: Q& h# z# f
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
" j$ y- J9 p& _# w8 K9 @4 ~; N0 o
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
* b. K- i0 R7 f+ \- y0 a/ n( O8 F$ L* x) a; r2 G
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
7 W$ @1 s. g) a7 R& @5 r4 N; }( P* f) x; Z+ H, @6 w7 F
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})- @9 j  r7 S- F8 c: f. }+ s6 f
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);; T  L7 `  M; d
9 v, j- |+ J- i9 ]" `
$exists 键是否存在   {finaGoalLine:{'$exists':true}}$ [; ]$ l& a( ~) V

7 l- C2 v" N: n; P: f$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]6 R- I: u" f5 M6 C& O9 H
' T: g. c$ D2 r  I- w
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
5 G. I3 W5 K2 }( q9 a$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
+ }- V: p% Q; k6 f* g6 U
3 c9 B# B" T) p/ ?4 f

; ~4 q, A: u! n. ^3 q
# w) x( A0 a' J8 L: C$ _! _# D

# ?: ~) k- E$ F! E$ m8 F+ h0 m7 i% L* H! g( s
! x+ o# L1 d& l  d8 m

( x  F. A3 `3 R$ f" S% I$ ]
. C! k4 a* ], p" N# [组合使用方法如下:  h2 e4 K  l+ J3 k

: ^9 [; ^% E2 @db.user.find({"age":{"$gte":18,"$lte":25}}): C1 q8 p; V) _7 w( P4 M
8 `* R7 d, \; M- @# b. H0 n3 P

; A$ b+ l0 I8 Y+ y" l
$ L, X8 U$ x3 f! z3 ?0 W对于日期的条件查询方法:
* y& A+ X; p" ]) u$ ~. q* ]0 N/ P3 q: I( R; h1 l, r
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
1 }2 P9 M$ Z3 R  V" I$ V
3 q/ C0 |% u- C7 X
0 g9 i* W$ I, F. l" K5 }" Z5 {, Q- `2 j3 M
2) 不等于 $ne* {, [' U& Q7 T/ _. V  x

; s. d9 T% ~! }7 E. q' ~例子:: j% _7 ]3 q' h) I. j8 M2 N
, H0 k6 ~1 }9 @! b% m1 q2 m+ m
db.taobao.find( { age: { $ne : 10} } );
: D. P9 V! Q& `3 kphp7 查询mongodb方法大全6 Z+ }. E5 g7 W; A) y4 B" k
游客,如果您要查看本帖隐藏内容请回复

' \' F* w, D! R6 A/ k( T2 f7 K' s/ O
0 S4 S. Z& g: a' H' G
3 {9 j' L+ W1 T3 e

% [& W' p0 B8 X7 A4 l& H3 e* v
" @: J7 M+ c2 z1 g- o
8 H- S2 j3 o; }% ]% r) w
6 P! a$ ?" F) ^6 Y& Z" a) l
# k: l" t" I  p( u! b( O/ ?! D' }, B: C, H: `' U

5 C- X! V) v1 q
& ~8 g( T+ B: ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
) c1 B9 n7 R4 E
  1. //and+ ^  q$ t" W/ X4 ~! v8 [8 w5 t* W  X
  2. {key1:value1, key2:value2}
    + z- b9 ~8 G) l1 J
  3. [key1=>value1, key2=>value2]% ]9 c  B8 T' `
  4. //or
复制代码
9 F* W; R4 ~, Y; ^) F/ u

/ I# t& b! L) ?/ O
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-20 01:23 , Processed in 0.062413 second(s), 21 queries .

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