Comments (9)
What about Array types? How we should define them?
from loopback-connector-postgresql.
You can specify a column type to be explicitly postgres JSON
type of the specific property in the model-definition.
Here is an example code snippet:
model-definition.json
{
"name": "Business",
"base": "PersistedModel",
"idInjection": false,
"options": {
"validateUpsert": true
},
"properties": {
"id": {
"type": "number",
"required": true,
"id": true
},
"name": {
"type": "string"
},
"location": {
"type": "object",
"postgresql": {
"dataType": "json"
}
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
boot-script.js
'use strict';
var util = require('util');
var _ = require('lodash');
module.exports = function(app) {
var db = app.datasources.postgresqlDs;
var Business = app.models.Business;
db.automigrate(function(err) {
if (err) throw err;
console.log('\nAutomigrate completed');
Business.create([{
id: 1,
name: 'Foo Inc.',
location: {
'United States': {
stores: 10
},
'United Kingdom': {
stores: 5
},
'Brazil': {
stores: 2
}
}
}, {
id: 2,
name: 'Bar Inc.',
location: {
'United States': {
stores: 12
},
'United Kingdom': {
stores: 20
},
'Argentina': {
stores: 4
}
}
}], function(err, result) {
if (err) throw err;
console.log('\nCreated instance: ' + util.inspect(result, {depth: 4}));
Business.find(function(err, result) {
if (err) throw err;
console.log('\nFound instance: ' + util.inspect(result, {depth:4}))
});
});
});
};
output
sakibs-mac:postgresql-31 ssh$ node .
Web server listening at: http://0.0.0.0:3000
Browse your REST API at http://0.0.0.0:3000/explorer
Automigrate completed
Created instance: [ { id: 1,
name: 'Foo Inc.',
location:
{ 'United States': { stores: 10 },
'United Kingdom': { stores: 5 },
Brazil: { stores: 2 } } },
{ id: 2,
name: 'Bar Inc.',
location:
{ 'United States': { stores: 12 },
'United Kingdom': { stores: 20 },
Argentina: { stores: 4 } } } ]
Found instance: [ { id: 1,
name: 'Foo Inc.',
location:
{ 'United States': { stores: 10 },
'United Kingdom': { stores: 5 },
Brazil: { stores: 2 } } },
{ id: 2,
name: 'Bar Inc.',
location:
{ 'United States': { stores: 12 },
'United Kingdom': { stores: 20 },
Argentina: { stores: 4 } } } ]
database table output & schema
testdb=# select * from Business;
id | name | location
----+----------+-----------------------------------------------------------------------------------------
1 | Foo Inc. | {"United States":{"stores":10},"United Kingdom":{"stores":5},"Brazil":{"stores":2}}
2 | Bar Inc. | {"United States":{"stores":12},"United Kingdom":{"stores":20},"Argentina":{"stores":4}}
(2 rows)
testdb=# \d Business;
Table "public.business"
Column | Type | Modifiers
----------+---------+-----------
id | integer | not null
name | text |
location | json |
Indexes:
"business_pkey" PRIMARY KEY, btree (id)
Hopefully, this answers the question in this issue. Closing this as resolved. Feel free to reopen if needed.
from loopback-connector-postgresql.
We do support 'JSON' or 'Object' as the data type. The value will be stored as a CLOB with stringified json.
from loopback-connector-postgresql.
Does this allow for filtering (the WHERE
equivalent) on key-values in the the JSON?
from loopback-connector-postgresql.
No. Embedded object for relational DBs doesn't support queries.
from loopback-connector-postgresql.
+1
from loopback-connector-postgresql.
Any update on this ?
from loopback-connector-postgresql.
@ssh24 - Can we use a find filter for some property in json column?
Something like,
Business.find({ where: { location -> brazil -> stores: 2 } });
If not, any plans to support?
from loopback-connector-postgresql.
There is currently no support using embedded filters on JSON fields at the moment. I have added it as a feature request in our backlog. Patch is welcome. #266
from loopback-connector-postgresql.
Related Issues (20)
- Multi-Column Database Indexes are Always Dropped on Autoupdate HOT 4
- Postgresql column as text[] or character varying() is returning data as string HOT 8
- Query with AND & OR combination is not working HOT 2
- Error when using transaction timeout HOT 6
- Postgres support > 9.x HOT 4
- LB4 with [email protected] causing SSL Error HOT 4
- eq object (JSON columns) doesn't work HOT 6
- Error: syntax error at or near ")"
- Support for Full Text Search
- Option to use joins instead of multiple calls for relations. HOT 1
- Release called on client which has already been released to the pool HOT 2
- Doesn't scramble the where correctly
- If url is empty string in config server crashes HOT 2
- Dependency Dashboard
- Add back Node.js v12 tests HOT 4
- Support bulk insert in one query using newly added createAll() in connector
- Error: Postgresql column as jsonb returning data as string using createAll() method HOT 2
- MongoDB extended operator rules erroneously applied to SQL databases and json bodies
- Default values in Models properties totally being ignored when using migrateschema. HOT 1
- Support for overlaps json operator
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 loopback-connector-postgresql.