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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:( l9 k" v' y8 i

' i! w2 L" l* Pdb.getCollection('student').find({'age':{'$gt':'20'}})5 j" D; X; {- T/ L$ d  p
6 p7 l8 I, I/ J, X
& v/ F$ E: A) E6 v

! }1 d. i/ U6 v& \# \' D$lt    <   (less  than )& ?. P8 e: f1 Z$ Z& n) W# R% h
6 N5 o+ R2 U4 v" Q, I5 m9 F& \
$lte    <=  (less than  or equal to )( C7 {" q8 z% a" |# d

/ ]' Y5 a% M) h- a  m$gt   >    (greater  than )
1 x; t! F6 D$ m8 t# [4 N. ]' L5 E& h! _
$gte   >=    (greater  than or   equal to)' F# r1 q2 w& Q

8 p+ {- m# r9 |" C2 ]8 R) Z
游客,如果您要查看本帖隐藏内容请回复
" i1 x0 \# ]  M/ I, u" W# e0 K

2 B+ B5 X( V, {2 C* ~$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
1 U/ ]0 E1 h$ K! S& F: J2 m3 ^. e0 L+ f/ V- a
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list* a+ f7 T2 T3 n! q' ]

+ C: R1 m, x! }8 u/ x/ q$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
. D# U/ R7 P& @% s# d
& B7 a& D$ ~/ M' l( L: G$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字1 m8 g! u( {5 s/ Z# I/ }; u# S
! q+ v4 U4 z: g" \$ L/ S! a
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在5 ~: x$ x/ ^! U; v3 q  m
$ q9 v: I. x2 L' r! ?% V
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int1 A# p7 y6 v* Y
- I- O6 M2 y" Y
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
. E8 r/ M9 |, u" M8 z6 Q9 E- a" t% z: g! [# w6 p
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
% a  y& z# {0 }2 T7 |' u- `$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
) R/ ~: t- L% W6 k4 ~( t
3 S# H1 ?; f7 Y1 `& v$exists 键是否存在   {finaGoalLine:{'$exists':true}}
( {5 r+ d$ d5 r& p/ \- }: k( i  B) A2 w- H' O, O( A( `
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]& k& [) C, e& _* R1 p
! @! }3 V" n; a, o
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
. P1 |" Z( Q$ y; }! ~# |" h$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 3 p. r/ _8 v* E; Q9 n
. T9 g. r! D$ s$ W& K& R: ]6 b
1 S% p1 {3 e% d0 {1 a

# N5 n8 K: p' K: F. W9 X: `7 P+ Q( i# k5 u

0 n& s9 h1 v' b; O) H; v7 A: X5 B

' L; |- ?* T- |" ~0 ?3 l% j. W9 l+ O, t  F' f+ }
0 T  L. Q" v3 l8 e! ~1 W
组合使用方法如下:
, m$ O( Y. N8 W( y6 H6 j6 p$ X0 x8 A7 t5 I
db.user.find({"age":{"$gte":18,"$lte":25}})4 V& ~( p/ S& w* |$ y. D
/ P1 I. }  l4 R/ ?7 {

$ y& O: m; w# A6 m1 }! U. u
/ D, n; ~6 B$ }& F9 m! K3 U  V对于日期的条件查询方法:% L7 d" H5 T& Q6 q

" ^8 j7 e8 p; m# t! v8 N7 Pdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})4 l+ F+ O5 l5 _% O9 R' ~

5 b2 g. E* j! Z( `
( A5 ~2 a0 Y- e. ~/ o* f+ a% ^& j* s8 I
2) 不等于 $ne
# |2 D( {& i9 }! A; q1 e0 f0 _5 t) x- E7 ]* t% l
例子:. U% j0 S7 }' A  _. m+ e1 X5 A8 f. o
! b! u( J6 s( C
db.taobao.find( { age: { $ne : 10} } );
3 f' ?: u5 K5 ]5 a2 v8 T1 Z, M2 dphp7 查询mongodb方法大全# h' C8 \, u5 p" j0 ?/ t; q5 B
游客,如果您要查看本帖隐藏内容请回复

; b' }, `+ P& o6 Y- i2 I- U$ g0 P
" ^& N; [) u- \9 a( ^5 s- \
  N* b/ V, u3 D; w; Y
6 U" H4 W4 T7 Z4 l/ A
$ G- H$ l# @8 b4 k
' ^' b" {( H9 W( @$ `$ J4 d' W0 o+ [, K7 |. [; }7 H9 |2 I3 F5 J

+ M9 U' x2 j! X: m. L8 ]! P2 C7 _% x5 C& p% r
8 W6 U- D0 K) d: z" ^% I' `& I7 b+ K; N

2 _' Z' `$ F- F0 C0 y. ]: x4 P: l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
3 f2 F  Z7 r; c& r! M8 h/ w
  1. //and& ]1 H% }- C7 A$ z
  2. {key1:value1, key2:value2}
      E; |9 N/ c( u; E
  3. [key1=>value1, key2=>value2]) p, K' G) P  ^9 x8 Z  m/ W
  4. //or
复制代码

' w1 ^' ]- t8 ~/ C  S6 q. T9 p; g! |9 y& \. \% D) ?3 [! n
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 15:17 , Processed in 0.111296 second(s), 18 queries .

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