MongoDB for Developers with Python Transcripts
Chapter: MongoDB's shell and native query syntax
Lecture: Concept: Advanced queries
0:01 So here's the list of the quering operators, all the complex ones.
0:04 So we saw that normally we pass these prototypical json objects,
0:07 ratings.values is five, and that just doesn't exactly match,
0:11 but we saw that that doesn't really solve all our problems,
0:14 often we want ranges or properties like
0:17 I want all of the ratings that are greater than eight, things like that;
0:20 so instead of putting a number into that prototypical json element,
0:23 we're going to put an operator, so we might say $eq for equality
0:27 that's kind of the same thing, but the others are not,
0:30 so $gt for greater than, greater than or equal to,
0:32 lt for less than, less than or equal to,
0:34 not equal to, so you could say I want to see all the ones where
0:37 there's no vote, or no rating of value ten, right,
0:42 there's no rating that has a value of ten.
0:44 And we talked about the in operator, this is kind of your two step join process
0:48 that we'll talk much more about when we get to the Python side of things,
0:51 there's also the inverse of that negation, not in the set.
0:54 So here's an example how we might use the greater than or equal to operator
0:58 to find all the books that have a rating of nine or ten
1:01 that are super highly rated by at least one person,
1:04 remember this is not like every single one in there has to be this,
1:07 but there exists of rating which is a nine or a ten.
1:10 We also have some joining operators or some combining operators joining,
1:14 so we can go in and say and pretty easily by just having
1:18 all the properties we're looking for in a single document,
1:21 but if for some reason these are coming from multiple places
1:23 you can actually combine them with the and operator
1:26 so that's nice, but what you really sometimes need is the or clause,
1:30 I want this or that, and there's no way to do that those prototypical json objects
1:35 but the or operator will let you do this.
1:38 You also have not and nor, so neither of these in an or,
1:41 sort of the negation of an or;
1:43 now I recommend you check out this link at the bottom for each one of them,
1:46 like so where the operator appears, does it appear to the right hand side
1:50 of the property or field name or the left hand side,
1:53 it kind of depends on the type of operator you're using,
1:56 so you can just click on this or the and and so on
1:58 and in the docks and it'll give you a little example.