Comments (3)
What is your source? Db? Datoms? Entities?
(d/q '[:find [?e ...]
:in $ ?n
:where [?e :name n]]
db "Ivan")
;; => [1, 2, 3]
(filter (fn [datom]
(and (= (.-a datom) :name)
(= (.-v datom) "Ivan")))
datoms)
;; => [#datascript.core/Datom{:e 1, :a :name, :v "Ivan"}, ...]
(filter (fn [entity]
(= (:name entity) "Ivan"))
entities)
;; => [{:db/id 1, :name "Ivan"}, {:db/id 2, :name "Ivan"}, ...]
from datascript.
Oh, you’re asking about datascript/filter
. Try this:
(d/filter db
(fn [db datom]
(and (= (.-a datom) :name)
(= (.-v datom) "Ivan"))))
This will only keep datoms which are about :name
([* :name *]
), so essentially querying such db will get you just
{:db/id 2, :name "Ivan"}
without any other properties of entity.
You probably want to keep any attributes of entity if that entity has a :name attribute equal to "Ivan". Then
(d/filter db
(fn [db datom]
(let [eid (.-e datom)
entity (d/entity db eid)]
(= "Ivan" (:name entity)))))
from datascript.
I am rewriting the datascript todo app.
For the filtering, i would like to pass a filtered db to my todo-list ( like you described in the video ).
The last example is just what i needed. Thanks!
from datascript.
Related Issues (20)
- How to hot fix aot code?
- Rules - Required bindings doesn't evaluate correctly HOT 1
- Datascript101 link is dead HOT 1
- `get-else` fails when passed a lookup.
- `entity` returns entities for ids that don't exist HOT 2
- Is there any doc to demo idiom way to implement pagination in datascript? HOT 4
- Upsert of datom with composite tuple containing lookup ref fails HOT 5
- Recursive reverse lookups not working quite like it should HOT 1
- Lookup ref in composite tuple during upsert HOT 2
- do we have double vector type? HOT 2
- `:xform` is not called on ref attributes HOT 2
- Query performance with rules is much worse than "equivalent" inline clause HOT 3
- Ability to pass multiple functions into query HOT 1
- Index usage doesn't match datomic behavior and appears to be much less efficient HOT 1
- Inaccurate temporary IDs after transit deserialization
- Unable to resolve tempids on :db.unique/identity refs HOT 2
- Handling of BigDecimal
- Regression in 1.6.4: Can’t sum relations with different attrs HOT 1
- Regression in 1.6.4: unbound vars not filtered HOT 1
- Indexes on vectors return surprising results HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from datascript.