管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
! b1 y9 H6 t8 _ M9 d z* D }6 ]0 l; M; B( Q4 N8 r# s9 K) h
db.getCollection('student').find({'age':{'$gt':'20'}})
, K- b8 r A& B
6 p" S. z- ?* R+ r+ P' n+ b
$ r8 ]7 L% h6 T3 e% G6 b) l! o2 U
$lt < (less than )
U% b O; [# Q; H9 U" C% X! J
$ C e7 q3 g5 Q* I$lte <= (less than or equal to )
" Y0 Q* q7 @- [" j0 C- H6 |
9 k% y! W/ t# K4 r) i7 l+ [; X$gt > (greater than )
- o' x: E+ k. l) S0 [/ \* _' y8 u
$gte >= (greater than or equal to)8 `7 ^! u+ s$ I) l4 a ^
1 ~' Q+ h. D! a7 r7 F8 R1 I+ W* H6 _% t _9 x7 ^" ~
& h, i; _" I6 s! U3 \/ f$ V' e
$ne != (not equal to)不等于 {'age': {'$ne': 20}}, z. R+ M" B4 x; D
% g: R4 h& _4 I- o9 |- ]$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
5 o" ^, S; R/ K8 \& {0 ?
/ M$ [# t$ A: d$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
) \' Q8 D+ D# C% S
4 o3 E: \* N: \/ U1 q# `5 [) V$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字+ Q8 b2 ?: @6 m9 c
, t' q+ [# e; H5 G4 T
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在' b0 n! Z' L" n! ?# y9 G" L% o/ ]
' b; J2 k5 k6 l) O; G$type 类型判断 {'age': {'$type': 'int'}} age的类型为int' y4 O( b r g
, k' L+ r' l- c, a
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串3 l0 s# d: D1 w7 A$ @
& b- o3 }1 f# o+ ~! a
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})8 G$ n5 s o+ }# N& w7 j# O
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);! t$ p+ ^7 f& p2 Y% _
6 J( O2 F4 F- X/ |0 T* [$ I
$exists 键是否存在 {finaGoalLine:{'$exists':true}}( n- E( L: `) y' K
2 {! Q( j$ t8 R3 M$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]( s5 |. p3 j# r1 h% l% ?: p# t% _
& K6 V- Z% m& ^8 E9 Q$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],. G. W. B7 F& }+ F: j* X
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 + _% H) q T3 o4 j. Y
# f- ?. r5 {9 q2 x. E: G1 M0 A
2 t. }- e% O6 e; R: g& D- }8 E
- c; H1 w* k0 j( c5 V6 u$ S
( q/ s K0 A9 ]% @% x
0 o, p- K( Z1 D. Y2 z
. W0 S0 H* e5 q) x$ u$ ?
/ L. x P4 @6 _) E* y2 a9 O7 k: k' @7 @ ^2 a+ `" s6 }; \
组合使用方法如下:
' l+ d, Q! F! Z1 L" A3 f7 _+ }0 b" e. m6 P3 r3 y; e
db.user.find({"age":{"$gte":18,"$lte":25}})# B' }8 u I8 R# }' @8 d2 b0 p
0 a+ G* p. V; U; [2 z, }
8 C( b U" }" G, R+ ]6 b) l9 ^
* C: m) e1 K/ ^9 n3 N对于日期的条件查询方法:
8 Y7 `/ f; B& q6 z. ?+ p) k6 P& ?$ o. v3 u3 u9 J% V- b) C) E
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
]/ h3 ~3 J# p& `% T$ V8 s
5 z% \2 n" w: W) X: A, A( R0 x, D; i0 i) w
0 |/ U0 `0 z! ~8 U
2) 不等于 $ne; I0 \' r$ \3 R9 Q- M
" ^+ A* f# r; Z$ L" Y9 b例子:9 Y' Z& E, p; C0 {0 i* i2 j
; d$ e, L# U3 @0 \. ydb.taobao.find( { age: { $ne : 10} } );
& O/ d4 X- [* _# h: }# q5 ?7 `php7 查询mongodb方法大全
+ R% r7 k5 w5 t/ m5 v- e) W5 U- C. l" v
; J" x0 c% Y. [7 x
# t1 M* M: J7 f$ @& }9 t1 U8 o5 ]5 d B1 t. `+ y
+ }- ~' o) Z7 p( V
; L9 D+ a; z2 n- `
& s" z4 _* f; x6 g3 H, N2 ^( |- ]
/ F3 A0 N; `. V" [# s
( h& P1 ~. ^7 a t: z+ x3 s1 a3 v% v, B+ f \
0 O1 W( {4 X. A' q
: u# k# Z. _3 w; Y9 r ` |
|