# How to get all data from the Persistency file?

**URL:** <https://swi-prolog.discourse.group/t/how-to-get-all-data-from-the-persistency-file/3673>\
**Category:** Help!\
**Created:** [March 2, 2021, 11:54am UTC](https://swi-prolog.discourse.group/t/how-to-get-all-data-from-the-persistency-file/3673 "2021-03-02T11:54:17Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![evmusonov](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/evmusonov/32/2967_2.png) [@evmusonov](https://swi-prolog.discourse.group/u/evmusonov)\
**Post date:** [March 2, 2021, 11:54am UTC](https://swi-prolog.discourse.group/t/how-to-get-all-data-from-the-persistency-file/3673/1 "2021-03-02T11:54:17Z")

</div>

My file contains:

```prolog
created(1613613236.7477932).
assert(user_data('$1$vUXiHMJy$Lm.hRA6tApw0kJWJZugoJ/','mike@gmail.com','123',1)).
assert(user_data('$1$vUXiHMJy$Lm.hRA6tGeI0kJWJZugoJS','clay@gmail.com','123',1)).

```

So these are my users and I want to create a list of all users. I’ve tried do `user_data(Id,Email,Password,Role)`, but it returns the first record only.

---

<div class="post-metadata">

**Author:** ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://swi-prolog.discourse.group/u/EricGT)\
**Post date:** [March 2, 2021, 1:01pm UTC](https://swi-prolog.discourse.group/t/how-to-get-all-data-from-the-persistency-file/3673/2 "2021-03-02T13:01:34Z")

</div>

Quick guess here; did not try any of this.

Once a persistency file is loaded, the data (facts in this case) should be accessible as expected and I take it that is what you are doing based on the question.

This should work.

```prolog
bagof(user_data(Id,Email,Password,Role),user_data(Id,Email,Password,Role),Users).

```

Now all of the facts are in the variable `Users` as a list.

See: [Finding all Solutions to a Goal](https://www.swi-prolog.org/pldoc/man?section=allsolutions)

HTH

* * *

**EDIT**

I have created a few topics on this site that talk about and demonstrate using [library(persistency)](https://www.swi-prolog.org/pldoc/man?section=persistency), the most complete and accurate example code can be found in this [post](https://swi-prolog.discourse.group/t/wiki-discussion-generating-cytoscape-js-graphs-with-swi-prolog/2816/4).

---

<div class="post-metadata">

**Author:** ![evmusonov](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/evmusonov/32/2967_2.png) [@evmusonov](https://swi-prolog.discourse.group/u/evmusonov)\
**Post date:** [March 7, 2021, 10:10am UTC](https://swi-prolog.discourse.group/t/how-to-get-all-data-from-the-persistency-file/3673/3 "2021-03-07T10:10:46Z")

</div>

I think I forgot to say that I want to make a list of users on my website, and I don’t get the idea how I can do this via bagof.

---

<div class="post-metadata">

**Author:** ![Boris](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/boris/32/7486_2.png) [@Boris](https://swi-prolog.discourse.group/u/Boris)\
**Post date:** [March 7, 2021, 12:27pm UTC](https://swi-prolog.discourse.group/t/how-to-get-all-data-from-the-persistency-file/3673/4 "2021-03-07T12:27:06Z")

</div>

Do you mean like this: [Html\_write, DCG generators and backtracking - #2 by Boris](https://swi-prolog.discourse.group/t/html-write-dcg-generators-and-backtracking/3288/2)

Or something completely different?

---

<div class="post-metadata">

**Author:** ![evmusonov](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/evmusonov/32/2967_2.png) [@evmusonov](https://swi-prolog.discourse.group/u/evmusonov)\
**Post date:** [March 8, 2021, 7:47am UTC](https://swi-prolog.discourse.group/t/how-to-get-all-data-from-the-persistency-file/3673/5 "2021-03-08T07:47:23Z")

</div>

Yes, exactly! I didn’t expect to see foreach in Prolog 🙂 Thank you

---

<div class="post-metadata">

**Author:** ![Boris](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/boris/32/7486_2.png) [@Boris](https://swi-prolog.discourse.group/u/Boris)\
**Post date:** [March 8, 2021, 8:49am UTC](https://swi-prolog.discourse.group/t/how-to-get-all-data-from-the-persistency-file/3673/6 "2021-03-08T08:49:09Z")

</div>

> [@evmusonov](#):
>
> I didn’t expect to see foreach in Prolog 🙂

There are two distinct "foreach"es in SWI-Prolog 🙂

- foreach/2 in [library(aggregate)](https://www.swi-prolog.org/pldoc/man?section=aggregate)
- the DCGs foreach//2 and foreach//3 from [library(dcg/high\_order)](https://www.swi-prolog.org/pldoc/man?section=highorder)
