Files

68 lines
1.3 KiB
Markdown
Raw Normal View History

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