cncml手绘网
标题:
mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
[打印本页]
作者:
admin
时间:
2019-5-10 15:00
标题:
mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
查询表中学生年级大于20,如下:
8 A$ t1 a1 U1 ?6 z
( A v; n' F, H5 E6 z$ H" J& x; B+ h
db.getCollection('student').find({'age':{'$gt':'20'}})
/ Z% T3 @' [; m' v# e- n: U' z
1 `& \; w4 B3 E
+ G9 P4 C" d* c, W9 z0 q
/ R8 t' S) r0 I* v3 G- P
$lt < (less than )
% R6 c& b2 H0 N3 V; \
+ P1 u- b$ V1 \
$lte <= (less than or equal to )
\7 _7 X, U t' ]1 T4 q
! l- }" _# }0 J9 J" F W: q
$gt > (greater than )
( M; q. i) a* {! S
% N' p; c( u1 J) a' W
$gte >= (greater than or equal to)
; P0 h/ B0 q( b! N. u
" y0 ~! F/ z0 b' m1 I& F0 o
- p, `2 Y8 e" a d; _
$ @8 Z; L7 x1 q- U8 z, B
$ne != (not equal to)不等于 {'age': {'$ne': 20}}
! g- c/ w! N6 C' h2 q
5 O6 N7 P6 I, r( v3 `1 c8 t
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
! c7 J' h, \: h7 G' E
; J/ w3 ~$ @" `# t- _
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
' y2 Z# J+ ~* m" q7 i# {
% f+ M0 {. ]* l
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
+ k! {% X3 ~- j" t9 a0 V
3 \/ n& a3 A. u! y3 D
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
0 Q: O0 Y G3 C2 q5 r
9 j% F# r; v! T) j) x
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
& m$ b2 s" m- H9 e2 s. J- v! q, _
! K1 L) w, v5 j3 `8 B
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
+ p( q* o! O( S7 g
4 m9 b9 ~9 w6 l% C9 F0 M {
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
+ ?' z) X; h e" @4 n# w
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
( {7 u! Z: S" m7 I5 F( p
, f; c) b* H9 k% l& q; Q
$exists 键是否存在 {finaGoalLine:{'$exists':true}}
. S, W9 X% l$ o3 C) v
- V: J4 z# f6 s" Q: z
$all
如果您希望找到一个包含这两个元素的数组
[
'tags'
=>
[
'$all'
=>
[
'red'
,
'blank'
]]]
: V6 H/ P7 S+ E9 B" ] I
: J& A3 J* x o; f( f# N, M7 j( \
$elemMatch
运算符在数组的元素上指定多个条件
'dim_cm' => [
'$elemMatch' => [
'$gt' => 22,
'$lt' => 30,
],
],
: }" W' P4 G; g7 C \
$size
运算符按元素数查询数组
[
'tags'
=>
[
'$size'
=>
3
* U3 `, j: B: g2 C; M
/ t# f; v. q7 Q7 Y
# D5 t7 m5 I; S, V1 n
6 s8 z& x7 e& u2 R/ `* @$ b0 w
3 k$ V: B+ E& j
7 e/ N' `3 P5 ^' r8 Q( M; g- P6 W+ E
! Z+ u# X% D! y' L( R+ g% K, k9 p* [
& S ^ p1 {( a4 U+ W; `0 r
$ i" A5 W- D: k5 {
组合使用方法如下:
; f! s1 { L) E7 U, k+ s6 j. c
2 b+ {% J9 `7 D1 M A4 Q: a
db.user.find({"age":{"$gte":18,"$lte":25}})
; P9 |! s; M1 G1 t3 I L: M7 }, e
5 E2 T v. O6 y$ L: t1 C: U
; ? @5 T6 t, l8 m b
: B" L, U& Z, N% _; l
对于日期的条件查询方法:
" Y+ e$ }# n0 e: P* O3 d
8 w x3 ~0 c* T/ [; H5 a
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
! x* q- w0 u1 q/ u/ Q# }3 ^& B6 ]
) u2 Z- s I! `* i9 { d2 r
. A4 F0 b9 b, t5 N
( E) B1 e" e# n3 O
2) 不等于 $ne
7 [' s. Y- l0 R. v- _ I
2 \; F$ p" y7 l+ A
例子:
" A7 s% I1 D* r+ T; ?* R( r
) m3 r8 A" Y/ n, r" P
db.taobao.find( { age: { $ne : 10} } );
9 w5 t" M: w/ \/ N
php7 查询mongodb方法大全
$ A9 p( C* N( ^/ ~ U& A$ Y4 }
+ F" X! W5 V: Q5 l
: s3 K% k5 s3 _" ], n) \
" ]5 F, w% m: p3 |
5 Y- ~$ L% a! ~9 j0 O R
$ _$ G5 H# W5 v
6 x; D U3 F% W
& e: @, d& D% `+ d- P: |# t
1 W7 t) P- j; b! Y" f* w' [1 ]: m# z. e
7 k, ^$ R* B4 S' H& B
- f, q3 `1 r2 j! C/ y7 r4 G
; S$ ], p7 L' f% i3 w/ ~ w/ D
( o3 @" r: k, v/ U' [
作者:
admin
时间:
2019-5-15 11:52
查询中的 and or
6 p; [& t7 P( K1 `% G: M4 H! o
//and
8 c1 e5 J9 G4 o: c
{key1:value1, key2:value2}
! x4 W% r4 e" F ^9 f9 U. N' F1 ^
[key1=>value1, key2=>value2]
5 a8 I# A! t8 X, e1 Z7 w S& [
//or
复制代码
4 G q. D9 m4 q+ k
5 x( V3 Y5 A- s
作者:
admin
时间:
2019-5-16 15:39
'sort' => ['id'=> -1] //排序-1是降序 1为升序
欢迎光临 cncml手绘网 (http://cncml.com/)
Powered by Discuz! X3.2