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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:. H9 y+ y5 J6 L
" k+ i4 x% M4 a# c- q& c
db.getCollection('student').find({'age':{'$gt':'20'}})
! `+ q1 s, `$ \" e) K% b: k! F: ], t5 S& m+ v- ^2 C- S

' O; r8 d2 j" B5 W- `1 G7 P: ^7 K/ {0 g- y% s3 u$ W
$lt    <   (less  than ): S4 W, w# n; c! C
! L- X, S5 N- _* N$ A5 |$ _  D/ D
$lte    <=  (less than  or equal to )8 O& }/ D: Z& l7 r: e

5 e- p9 i6 N' R$ S: ~$ _$gt   >    (greater  than )' w6 p) V; C/ t, ?: c' y

8 @& m6 f: }( E$gte   >=    (greater  than or   equal to)
) W4 U  c+ n5 w$ b% C, m* \% ?5 N- v& g2 ^$ e( D6 B. N
游客,如果您要查看本帖隐藏内容请回复

2 ~6 \! j% y1 Y; S  Q
5 y& [. P# p# i) l9 Q$ne  != (not equal to)不等于  {'age': {'$ne': 20}}% \  N" M9 x$ y9 _
6 b2 t: [* D( G5 t
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
* n5 A% l& j! i) V* T
4 I+ ?( O+ A7 e& f' K$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
" F, B! b& e2 N1 I  e% b' g8 ]) H( w# G" h
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字2 T) D+ J2 f7 f# P7 J5 m
0 r. j8 A9 E' m; a) n
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在- }. A* Y+ s  T" H" q

, g9 D9 u+ _3 Z' C5 D6 b/ p. G$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int- j! U! R- J0 m% T- P

% g! Y0 e7 w; {( n: Z$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串# \: v9 [: P8 u1 j+ m% E

, @( c+ C3 V" B: z/ [$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})! T' C+ l! H( l8 T- |6 r
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);& [, ~+ a2 j* k6 W# t5 O# P+ o

: G" Q; K( H8 R' V/ n% k, i$exists 键是否存在   {finaGoalLine:{'$exists':true}}8 h( w- \% N# P; k8 \. Z/ h

3 x  d* r5 ]- n9 B& ?+ U" x$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]  E' |( b; Z2 V9 p( M" s# h+ z
3 o( C) c8 O  P2 z
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
: W  O/ y! R: k# K$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ! w" X2 j* h# Z' L! N: v% Z

' ]# ?3 `- {" g$ O% ?

  k. _; s. m6 a+ o% P7 Q6 \7 U- f4 P

, M3 z7 T) C  o) j/ z
9 W7 t) _  D4 L8 _# m: |! c( r/ m
5 X- a! c, p9 @9 D$ V7 q- V
5 L7 G0 x4 V  Z

' g6 K9 V) Q7 M; R组合使用方法如下:
2 }* w$ }3 o* {) b% v3 W( B& i. M# J' e' }' S- _' ?8 d( a4 t
db.user.find({"age":{"$gte":18,"$lte":25}})5 F" X1 T' _0 ^4 P. w) W4 f

( |: ?* Y; Q4 T# l5 k, L) T2 q
' ^3 K' S6 O) ?# R8 j7 P
, l0 P& ^# T+ h7 v! p1 a8 q对于日期的条件查询方法:4 ?1 B$ i/ G3 H2 Q% p3 {
( D- P4 U+ S3 a! e/ ~0 n, o- O8 g
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
2 F& D; m/ t  x3 P1 b% D0 ~  h. E9 ^: Z; l

( _' b& E2 D8 \9 F9 \& a% r8 m1 {( J% O
2) 不等于 $ne9 r3 g; [4 s( A

( c1 t8 `. s% F$ N  u4 [例子:
, y: g: B# v8 Q5 z
+ w3 e: u# |# {! {; z* I7 {7 c8 q- @db.taobao.find( { age: { $ne : 10} } );
/ }3 d8 i8 g2 Y( |. j9 L1 r9 V( Aphp7 查询mongodb方法大全& `2 j" Q6 x% e* F/ E& Z0 ?5 O
游客,如果您要查看本帖隐藏内容请回复
4 n: I) ]8 ?) \# S! V  `& I' \

, a/ N8 r& Q0 k' n- s" d/ ]- T

! p) |9 O% N  G: M* `
1 Y' f: o( ~3 r. G; w6 G2 I+ b( }( R5 ~' l" Z; [
/ S6 I9 N% \* m, l
- `7 V, }+ P. o$ \. N
5 o4 u; B' @- h
5 X6 u3 U! {' n! z4 O
) {/ C) U/ Q* g5 d5 n

/ s8 l! R/ O* E; ^' D9 {/ K- C; F! r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
% K" g& E7 y6 p
  1. //and
    , g% Y9 N* f9 ~0 w+ I
  2. {key1:value1, key2:value2}
    & p, q) Q8 Z" t% o
  3. [key1=>value1, key2=>value2]3 H+ [& v+ e" E& g1 T, o3 f8 T
  4. //or
复制代码
6 V+ h* K! C, J( N( X/ ~
. @, V  t1 Y7 m0 k! U1 ?4 ^6 P
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-19 22:41 , Processed in 0.068501 second(s), 18 queries .

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