feat(rethinkdb): Add sequence.merge and sequence.coerceTo support

This commit is contained in:
Gregory Ristow
2018-08-07 13:16:42 -04:00
parent 1151563af9
commit d7ecdccc2a
2 changed files with 26 additions and 0 deletions
+19
View File
@@ -277,6 +277,25 @@ declare module "rethinkdb" {
interface Sequence extends Operation<Cursor>, Writeable {
between(lower: any, upper: any, index?: Index): Sequence;
/**
* Turn a sequence into an array or object, necessary when merging a sequence.
*
* See: https://www.rethinkdb.com/api/javascript/coerce_to/
*/
coerceTo(key: 'array'): Expression<any[]>;
coerceTo(key: 'object'): Expression<Object>;
merge(object: Object): Sequence;
merge(cb: ExpressionFunction<Expression<any>>): Sequence;
/**
* Turn a sequence into an array or object, necessary when merging a sequence.
*
* See: https://www.rethinkdb.com/api/javascript/coerce_to/
*/
coerceTo(key: 'array'): Expression<any[]>;
coerceTo(key: 'object'): Expression<Object>;
filter(rql: ExpressionFunction<boolean>): Sequence;
filter(rql: Expression<boolean>): Sequence;
filter(obj: { [key: string]: any }): Sequence;
+7
View File
@@ -22,6 +22,13 @@ r.connect({ host: "localhost", port: 28015 }, function(err: Error, conn: r.Conne
)
.run(conn, errorAndCursorCallback);
r.table("players").merge((player: r.Expression<Object>) => {
return {
teams: r.table("games").getAll(player('teamIds')).coerceTo('array'),
}
})
.run(conn, errorAndCursorCallback);
const center = r.point(123, 456);
r.table("geo")
.getIntersecting(r.circle(center, 1000, { unit: "m" }), { index: "location" })