aboutsummaryrefslogtreecommitdiffhomepage
path: root/docs/content/en/functions/collections/Where.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/en/functions/collections/Where.md')
-rw-r--r--docs/content/en/functions/collections/Where.md54
1 files changed, 25 insertions, 29 deletions
diff --git a/docs/content/en/functions/collections/Where.md b/docs/content/en/functions/collections/Where.md
index e053ed3d5..ca900d85e 100644
--- a/docs/content/en/functions/collections/Where.md
+++ b/docs/content/en/functions/collections/Where.md
@@ -5,16 +5,11 @@ categories: []
keywords: []
action:
aliases: [where]
+ related: []
returnType: any
signatures: ['collections.Where COLLECTION KEY [OPERATOR] VALUE']
-related:
- - collections.Dictionary
- - collections.Group
- - collections.Index
- - collections.IsSet
- - collections.Where
-aliases: [/functions/where]
toc: true
+aliases: [/functions/where]
---
The `where` function returns the given collection, removing elements that do not satisfy the comparison condition. The comparison condition is comprised of the `KEY`, `OPERATOR`, and `VALUE` arguments:
@@ -37,9 +32,10 @@ Hugo will test for equality if you do not provide an `OPERATOR` argument. For ex
The where function takes three or four arguments. The `OPERATOR` argument is optional.
COLLECTION
-: (`any`) Typically a page collection or a [slice] of [maps].
+: (`any`) A [page collection] or a [slice] of [maps].
[maps]: /getting-started/glossary/#map
+[page collection]: /getting-started/glossary/#page-collection
[slice]: /getting-started/glossary/#slice
KEY
@@ -50,7 +46,7 @@ KEY
```
[chain]: /getting-started/glossary/#chain
-
+Typically a
OPERATOR
: (`string`) The logical comparison [operator](#operators).
@@ -64,7 +60,7 @@ Comparison|Result
`false "eq" "false"`|`false`
`false "eq" false`|`true`
-When one or both of the values to compare is a slice, use the `in`, `not in` or `intersect` operators as described below.
+When one or both of the values to compare is a slice, use the `in`, `not in`, or `intersect` operators as described below.
## Operators
@@ -123,14 +119,14 @@ Compare the value of the given field to an [`int`] or [`float`]:
[`float`]: /getting-started/glossary/#float
```go-html-template
-{{ $sectionPages := where site.RegularPages "Section" "eq" "books" }}
-
-{{ $pages := where $sectionPages "Params.price" "eq" 42 }}
-{{ $pages := where $sectionPages "Params.price" "ne" 42.67 }}
-{{ $pages := where $sectionPages "Params.price" "ge" 42 }}
-{{ $pages := where $sectionPages "Params.price" "gt" 42.67 }}
-{{ $pages := where $sectionPages "Params.price" "le" 42 }}
-{{ $pages := where $sectionPages "Params.price" "lt" 42.67 }}
+{{ $books := where site.RegularPages "Section" "eq" "books" }}
+
+{{ $pages := where $books "Params.price" "eq" 42 }}
+{{ $pages := where $books "Params.price" "ne" 42.67 }}
+{{ $pages := where $books "Params.price" "ge" 42 }}
+{{ $pages := where $books "Params.price" "gt" 42.67 }}
+{{ $pages := where $books "Params.price" "le" 42 }}
+{{ $pages := where $books "Params.price" "lt" 42.67 }}
```
## Boolean comparison
@@ -140,12 +136,12 @@ Compare the value of the given field to a [`bool`]:
[`bool`]: /getting-started/glossary/#bool
```go-html-template
-{{ $sectionPages := where site.RegularPages "Section" "eq" "books" }}
+{{ $books := where site.RegularPages "Section" "eq" "books" }}
-{{ $pages := where $sectionPages "Params.fiction" "eq" true }}
-{{ $pages := where $sectionPages "Params.fiction" "eq" false }}
-{{ $pages := where $sectionPages "Params.fiction" "ne" true }}
-{{ $pages := where $sectionPages "Params.fiction" "ne" false }}
+{{ $pages := where $books "Params.fiction" "eq" true }}
+{{ $pages := where $books "Params.fiction" "eq" false }}
+{{ $pages := where $books "Params.fiction" "ne" true }}
+{{ $pages := where $books "Params.fiction" "ne" false }}
```
## Member comparison
@@ -158,19 +154,19 @@ Compare a [`scalar`] to a [`slice`].
For example, to return a collection of pages where the `color` page parameter is either "red" or "yellow":
```go-html-template
-{{ $sectionPages := where site.RegularPages "Section" "eq" "fruit" }}
+{{ $fruit := where site.RegularPages "Section" "eq" "fruit" }}
{{ $colors := slice "red" "yellow" }}
-{{ $pages := where $sectionPages "Params.color" "in" $colors }}
+{{ $pages := where $fruit "Params.color" "in" $colors }}
```
To return a collection of pages where the "color" page parameter is neither "red" nor "yellow":
```go-html-template
-{{ $sectionPages := where site.RegularPages "Section" "eq" "fruit" }}
+{{ $fruit := where site.RegularPages "Section" "eq" "fruit" }}
{{ $colors := slice "red" "yellow" }}
-{{ $pages := where $sectionPages "Params.color" "not in" $colors }}
+{{ $pages := where $fruit "Params.color" "not in" $colors }}
```
## Intersection comparison
@@ -180,10 +176,10 @@ Compare a [`slice`] to a [`slice`], returning collection elements with common va
For example, to return a collection of pages where any of the terms in the "genres" taxonomy are "suspense" or "romance":
```go-html-template
-{{ $sectionPages := where site.RegularPages "Section" "eq" "books" }}
+{{ $books := where site.RegularPages "Section" "eq" "books" }}
{{ $genres := slice "suspense" "romance" }}
-{{ $pages := where $sectionPages "Params.genres" "intersect" $genres }}
+{{ $pages := where $books "Params.genres" "intersect" $genres }}
```
## Regular expression comparison