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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
. `& b/ H6 Y; ?
8 O  w7 f/ ^3 Q( r1 j2 L. {' A3 adb.getCollection('student').find({'age':{'$gt':'20'}})
( ~, Z5 E3 G$ c# y7 G5 ^! C; L2 w# o! Q0 ?* k. |, t" N

+ B5 \9 o; m* }0 f$ ]4 ?0 |& o! E4 l0 @9 I3 y4 \! q' e
$lt    <   (less  than )
( I( |, M7 I- r3 c
1 {6 Q. v& z8 Q8 A$lte    <=  (less than  or equal to )
3 B  k0 n+ }+ M( d6 l) ?  Z6 ?9 W$ ?2 m: |
$gt   >    (greater  than )
# L8 n" f  g4 e1 T. Q3 b8 H$ [
0 G3 @2 i5 \4 O( K! r$gte   >=    (greater  than or   equal to)8 T7 j5 I/ G( [/ ~
& m! g9 G/ v7 B9 d8 |* N: Y# R
游客,如果您要查看本帖隐藏内容请回复

, N+ z7 G2 {5 e) m$ ?) w9 {; Q! n+ ]6 o6 q2 {% v7 S/ b* w
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}: U$ S+ W: [, _3 w. o3 J$ [
# n5 k& D! F! b+ D$ j
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list1 F' J" B1 n$ ^" G3 B4 Z3 M$ ]% |
# k- g8 W- i6 G/ K0 M+ \/ M' r
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
, C% a1 O2 d- q1 [; |/ u. f) Q$ {& c" Q7 ^" `, O
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字! @4 H5 u$ E8 H- R

+ M6 u5 c3 y) i$ A6 B4 e: O( e2 k$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
" F/ \# b" }8 ?, L( |+ e! t/ R# F1 X2 j) [% }9 |
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
* R' ~4 t* e0 o, O) V0 d) x4 @) y
) y% @5 {) h0 Q* j2 A8 `$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
2 ?# D0 Y! Z3 g5 A3 U& W, g  I6 T% K# c1 A' L. n! g6 r
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})) W3 t3 p2 i1 k9 ^# l3 a6 X
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
" ~( b( k1 S8 \
8 L* L& a0 m  j1 L  g- d$exists 键是否存在   {finaGoalLine:{'$exists':true}}
" o% b1 ]: g) ~, F# u% r- b" k2 l/ n7 H+ X1 U# _+ y3 p
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]2 s% B% Z  g# ]

. V* B  _8 G$ h! H$ Z7 G, k  D  M4 [& |$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],* H+ w: q' V" n3 L
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
3 V% B% C* ]9 s: V1 P7 X% s% O1 g, w4 d* h  {

; c, k& P/ O( e" A
+ ^! E0 ]( D# K; N% d

0 J3 ]* n5 ~: N6 O/ U1 d/ e$ t0 s# U! ?! J% t7 @. {

# q" G2 O  b; o: X- x7 E
) p: {& ~$ d- a) u/ _7 H0 k
! g8 U9 ?. g) R) J组合使用方法如下:
0 A* h' |" ~' k% A# t2 t$ M" T2 f1 s' t2 a+ x3 W* R
db.user.find({"age":{"$gte":18,"$lte":25}})5 V& m) d' @6 g/ y+ R1 b
6 J) a+ ~! p$ B6 d5 i

8 _2 r3 D* M1 e6 @, T2 X8 g8 H! a) P0 m7 w5 X' l
对于日期的条件查询方法:
! H8 S' ~) `9 ]& A; H4 J& [; y
/ `. S" [3 X* g. Xdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})/ H" J2 E! G- M

1 V3 J% l  u- c' A1 f
! b7 q' \9 B( U
9 T/ d/ m7 d% @6 G2) 不等于 $ne( L- P' K% d; P

1 @% d) d5 i$ g/ L$ \' k9 [; A$ o2 O例子:$ y- [6 {( O& B: p9 |& K4 ^4 E# M; f
/ C: d6 O, y0 C% o
db.taobao.find( { age: { $ne : 10} } );
2 k4 E# z; x7 ?9 L8 sphp7 查询mongodb方法大全
9 E, r5 O0 [) b+ P
游客,如果您要查看本帖隐藏内容请回复
2 B8 S6 l- j  `$ f; M5 T* p/ x# \

1 `% [+ L9 q6 L) s! G& g
3 M" m/ K2 z9 L; W# n% l' x  t) F+ F! V) t) U) u, _
4 K9 c9 o, c9 o- W9 o7 C5 v
& Y7 v% {6 r7 V& y3 a/ q; O* Z

. r; d5 \1 B8 ^& U" ^" k0 X+ K8 b) ?: |
" W" V' C+ ^! j

3 v4 q/ j/ q6 D6 z8 ~' w8 N( A
$ h' q- B' n$ v4 N( z! t( {) X1 N) K. ^' l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or# @& q! H" `& o* S
  1. //and# r- `$ f& k9 `& ^6 m
  2. {key1:value1, key2:value2}
    " T  j! W4 L+ ^& Q5 C
  3. [key1=>value1, key2=>value2]$ ^$ N0 m  A. b1 \: N. J
  4. //or
复制代码
" l0 i$ [. I  U- F% z8 O2 f- p4 C
% o7 _$ s8 ]. H  b8 N7 S$ X
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 12:40 , Processed in 0.051482 second(s), 20 queries .

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