我试图在nodejs上构建对象,然后将其作为hstore数据类型存储到Postgres数据库。 例如,在Java中,您将执行以下操作:
rm objects/70/574e5c0d5f1fb820f66fd3fd3a3c0c4ed398bb # blob id of file to be removed
git write-tree # copying output
echo "removing file" | git commit-tree <copied id from previous command> -p <previous HEAD> # copying ouput
git update-ref refs/heads/master <copied id from previous command>
,然后将其推送到数据库。
我如何在nodejs中创建这样的对象,不确定是否需要一个JavaScript哈希图对象,或者该怎么办? 我正在使用nodejs和pg库连接到Postgres数据库
答案 0 :(得分:0)
也许我会使用sequelizejs(Node.js v4及更高版本的基于承诺的ORM)来回答。
const User = sequelize.define('user', {
firstName: {
type: Sequelize.STRING
},
lastName: {
type: Sequelize.STRING
}
});
// force: true will drop the table if it already exists
User.sync({force: true}).then(() => {
// Table created using object format
return User.create({
firstName: 'John',
lastName: 'Hancock'
});
});
//optional to use anything you want
这是sequelizejs
文档中的代码。
答案 1 :(得分:0)
hstore的文本表示形式,用于输入和输出,包括零个或多个以逗号分隔的键=>值对。一些例子:
k => v
foo => bar, baz => whatever
"1-a" => "anything at all"
下一步是安装Sequelize和一些其他依赖项:
npm install --save sequelize pg pg-hstore
使用:
field_name: {
type: Sequelize.HSTORE()
},
当前功能
User.findOne({
where: {
hstore_field: {
fieldOne: 'some_value',
},
},
});
会产生
SELECT *
FROM Users
WHERE hstore_field = '"fieldOne" => "some_value"'
New functionality
User.findOne({
where: {
hstore_field: {
$contains: {
fieldOne: 'some_value',
},
},
},
});
会产生
SELECT * FROM Users
WHERE hstore_field -> 'fieldOne' = 'some_value'