cncml手绘网
标题:
mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
[打印本页]
作者:
admin
时间:
2019-5-10 15:00
标题:
mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
查询表中学生年级大于20,如下:
9 _, a: ^. j3 Y; Y/ p
* Q- |/ {. P# o! \+ [6 K4 E7 z
db.getCollection('student').find({'age':{'$gt':'20'}})
- L. p3 W) F0 e8 |. @6 {1 q
9 j, P% B0 y- k. U
$ Y% P+ N3 B$ y0 q
* k. d' W q6 G2 s% x+ h2 Y2 @9 h+ R
$lt < (less than )
5 D5 F8 W$ }# f
: C* } V6 l& j& C
$lte <= (less than or equal to )
, S- D& B( F! d' Y; z) p( Z3 f
* c& H+ F/ L, |* g( u) a
$gt > (greater than )
& W5 |3 Y. p1 D" E2 ^
1 Z# c% z: h& X } M! N& I1 n$ {
$gte >= (greater than or equal to)
; w3 q" T! d6 @$ g
( o, n2 `* a. p
Q, |( s# Q" _7 \; S3 c* X
' H4 D! y! R9 e
$ne != (not equal to)不等于 {'age': {'$ne': 20}}
9 h6 D- T. n. W4 F' D1 k- b/ e
& H& A) J5 J" T" \
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
# [; @6 A# Y" S9 w$ m9 c
% V- e$ b" g; ?# M
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
+ I# F& R0 q; F% b1 S
& Y$ Z* q# l3 ]/ f; K Y V
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
8 t3 S; Z) O% Q7 ?
% h7 L4 J1 |* ^% r% B% e7 y
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
! Z+ E Z! I( ` Y2 F% Q& O
. @6 u9 `+ N% _0 T# c. j
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
7 P P3 _, e4 f' t$ c% E3 u1 _
2 Z) E( U, `1 e4 h5 l) ?
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
1 H o; R* i+ `# I
$ j$ H+ z3 J/ J% Y' u6 `
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
# O: B; G5 S% [0 D& ^
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
$ |$ K, @% r' E! n: c# C" d
. W4 o, G( ?- ?) H
$exists 键是否存在 {finaGoalLine:{'$exists':true}}
2 ?; X( I1 \; i. a6 Y8 @
7 g$ p$ V7 \* |8 S, z
$all
如果您希望找到一个包含这两个元素的数组
[
'tags'
=>
[
'$all'
=>
[
'red'
,
'blank'
]]]
/ d- c1 F7 l$ l5 G; B- I
5 M _$ Y: s: r4 g: K
$elemMatch
运算符在数组的元素上指定多个条件
'dim_cm' => [
'$elemMatch' => [
'$gt' => 22,
'$lt' => 30,
],
],
, q7 N! N: j; L" s! b4 ^
$size
运算符按元素数查询数组
[
'tags'
=>
[
'$size'
=>
3
! u8 g7 N- g/ q1 T
* p: @1 H i7 P* P4 k+ t
) a! U/ _; s. k% I3 M
1 z' i8 n+ m! s$ U! V
f; A5 y# b& ?$ R I
8 p: U0 z2 k$ o% k# R
: O" j; a# B2 v. c
! E3 M' P K' c- y' Q' t U# D
8 ~/ x" \# g4 w! g( C
组合使用方法如下:
- Z- C& ~) B2 B5 i) R- {
) W5 o g$ g/ a# g
db.user.find({"age":{"$gte":18,"$lte":25}})
! P. y' ^& x5 y, v
6 }# x0 A- C1 o0 f, ~
+ l6 \& U$ x% u3 [% V
, C7 }/ X+ e# Z- P
对于日期的条件查询方法:
0 N3 p9 P( z. ], p1 V4 v: g3 \
9 y) M+ l9 j! P! H+ X; M* i
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
* F' s' `- ?# C" C# p* r- K6 T
$ g$ R; V$ ]. R7 C- ~4 I
* b' e; c. ]4 B5 X* N" j( d% w
8 `0 e, T. v1 i% z! g4 }5 @
2) 不等于 $ne
# u1 X9 q3 g3 ~* a. ^
# B3 g1 Z2 q6 D( Z+ z4 t: W
例子:
. J' h' W4 \: h: S- j4 k, y$ G5 Y
6 a* M2 K9 [/ ?0 d
db.taobao.find( { age: { $ne : 10} } );
7 Z2 H& [- g" ^ ^
php7 查询mongodb方法大全
8 ^3 K- D8 H1 m# y M/ {3 @7 j6 i
7 C9 z! h; d+ I( j
/ @9 m7 P4 \& v' \4 z3 x5 I
/ J* P4 Q A l* G. d& p: m3 m
2 @" J$ O- [3 [% g0 C8 g$ J
7 n/ I0 ^. B* s5 m/ o8 i, {' Q7 |7 @; ~
, u; _2 s& ] b! c
" s2 }' y2 j* |1 f$ x) v
; }$ x# k% D8 B7 t
9 J5 s$ X; }$ r/ [7 P0 C) v4 F2 y
2 I$ v, e% N1 ~1 o5 d" W
- H7 ?9 m2 `% R$ h- ?9 ]
2 j1 z. s& |% R) o/ J
作者:
admin
时间:
2019-5-15 11:52
查询中的 and or
$ R& ], B- o1 Z4 P: x' k0 E9 S
//and
% o) D# G% b! c* y9 J! g/ ?
{key1:value1, key2:value2}
( Q. B, ?* q% j% k
[key1=>value1, key2=>value2]
( S" ~+ e, i! S! {/ I/ I
//or
复制代码
3 ^! {6 u0 O! D0 d. m; E2 W
) v' @; A- ~' x' H% {& n4 m
作者:
admin
时间:
2019-5-16 15:39
'sort' => ['id'=> -1] //排序-1是降序 1为升序
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2