-
-
Save neumino/6554108 to your computer and use it in GitHub Desktop.
r.table("test").filter( function(doc) { | |
return doc("adresses").contains(function(adress) { | |
return adress("city").eq("Paris") | |
}) | |
}) | |
/* | |
{ | |
name: "Bob", | |
adresses: [ | |
{ | |
country: "France", | |
city: "Paris" | |
} | |
] | |
} | |
*/ |
If there are more than three addresses on the fourth the query can not find do not return anything. Do you have any idea if it's a limitation of rethinkdb or I must try to do other way?. Thank you!
Query and data example are bellow:
r.table("test").filter( function(doc) { return doc("adresses").contains(function(adress) { return adress("city").eq("Havana") }) })
{ name: "Bob", adresses: [ { country: "France", city: "Paris" }, { country: "Austria", city: "Vienna" }, { country: "Belgium", city: "Brussels" }, { country: "Cuba", city: "Havana" } ] }
Looks like as required in RethinkDB 2.3.6
. It returns the whole objects which contains addresses that contain at least one city=Havana. Of course it returns other addresses too, because only filter for searching was used (no data plucking).
Btw thanks for the query, i was searching for exactly this.
👍
Hey, thanks for posting this. Although, the query does not do what the title says. This query filters documents based on whether a nested array contains a value. It doesn't actually filter non-matching elements out of the array. (Came here via Google search and took me a while to figure out why it wasn't doing what the title said.)