2021-11-03 04:00:58 +00:00
|
|
|
# Document Index
|
|
|
|
|
|
|
|
Use the `documentIndex` operator (or the `di` shorthand) to select nodes of a particular document.
|
|
|
|
|
2022-02-06 03:39:46 +00:00
|
|
|
{% hint style="warning" %}
|
|
|
|
Note that versions prior to 4.18 require the 'eval/e' command to be specified. 
|
|
|
|
|
|
|
|
`yq e <exp> <file>`
|
|
|
|
{% endhint %}
|
|
|
|
|
2021-11-03 04:00:58 +00:00
|
|
|
## Retrieve a document index
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
a: cat
|
|
|
|
---
|
|
|
|
a: frog
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2022-02-10 22:05:17 +00:00
|
|
|
yq '.a | document_index' sample.yml
|
2021-11-03 04:00:58 +00:00
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
0
|
|
|
|
---
|
|
|
|
1
|
|
|
|
```
|
|
|
|
|
|
|
|
## Retrieve a document index, shorthand
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
a: cat
|
|
|
|
---
|
|
|
|
a: frog
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2022-01-27 06:21:10 +00:00
|
|
|
yq '.a | di' sample.yml
|
2021-11-03 04:00:58 +00:00
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
0
|
|
|
|
---
|
|
|
|
1
|
|
|
|
```
|
|
|
|
|
|
|
|
## Filter by document index
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
a: cat
|
|
|
|
---
|
|
|
|
a: frog
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2022-02-10 22:05:17 +00:00
|
|
|
yq 'select(document_index == 1)' sample.yml
|
2021-11-03 04:00:58 +00:00
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
a: frog
|
|
|
|
```
|
|
|
|
|
|
|
|
## Filter by document index shorthand
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
a: cat
|
|
|
|
---
|
|
|
|
a: frog
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2022-01-27 06:21:10 +00:00
|
|
|
yq 'select(di == 1)' sample.yml
|
2021-11-03 04:00:58 +00:00
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
a: frog
|
|
|
|
```
|
|
|
|
|
|
|
|
## Print Document Index with matches
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
a: cat
|
|
|
|
---
|
|
|
|
a: frog
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2022-02-10 22:05:17 +00:00
|
|
|
yq '.a | ({"match": ., "doc": document_index})' sample.yml
|
2021-11-03 04:00:58 +00:00
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
match: cat
|
|
|
|
doc: 0
|
|
|
|
match: frog
|
|
|
|
doc: 1
|
|
|
|
```
|
|
|
|
|