2018-10-12 15:37:13 -04:00
|
|
|
---
|
|
|
|
title: Chain Search Query Helpers to Narrow Search Results
|
|
|
|
---
|
|
|
|
## Chain Search Query Helpers to Narrow Search Results
|
|
|
|
|
|
|
|
1. To create but not execut a find query
|
|
|
|
```javascript
|
|
|
|
Model.find( {name: 'Leah'} )
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. To store the find query into a variable for later use:
|
|
|
|
```javascript
|
|
|
|
var findQuery = YourModel.find( {name: 'Leah'} )
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
3. To sort an array:<br>
|
|
|
|
```javascript
|
|
|
|
yourArray.sort( {age: 1} ) // Here: 1 for ascending order and -1 for descending order.
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
4. To limit an array's size:
|
|
|
|
```javascript
|
|
|
|
yourArray.limit(5) // return array which has 5 items in it.
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
5. To hide certain property from the result:
|
|
|
|
```javascript
|
|
|
|
yourArray.select( {name: 0, age: 1} ) // Here: 0 means false and thus hide name property; 1 means true so age property will show.
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
6. To exec this query, you can either:</br>
|
|
|
|
1) Callback:
|
|
|
|
```javascript
|
|
|
|
YourQuery.exec(function(err, docs) {
|
|
|
|
//do something here
|
|
|
|
})
|
|
|
|
```
|
|
|
|
Or 2) Promise
|
|
|
|
```javascript
|
|
|
|
YourQuery.exec.then(function(err, docs) {
|
|
|
|
//do something here
|
|
|
|
})
|
|
|
|
```
|
|
|
|
|
|
|
|
7. Chain it all together:
|
|
|
|
```javascript
|
|
|
|
Person.find({age: 55}).sort({name: -1}).limit(5).select( {favoriteFoods: 0} ).exec(function(error, people) {
|
|
|
|
//do something here
|
|
|
|
})
|
|
|
|
```
|
|
|
|
</br>
|
2019-03-05 14:27:17 -06:00
|
|
|
</br>
|