Node.js 使用dynamoose编写查询时需要帮助吗

Node.js 使用dynamoose编写查询时需要帮助吗,node.js,amazon-dynamodb,Node.js,Amazon Dynamodb,我正在使用dynamoDB和dynamoose处理节点js。例如,假设我们有一个表Employees,其中有两个属性Branch和Domain。我有一个给定的分支和域,现在我想获取给定分支或给定域下的所有员工。有人能举一个上述案例的例子吗?这是查询和扫描的代码 代码连接到DynamoDB本地实例 使用的员工架构:- var dynamoose = require('dynamoose'); dynamoose.AWS.config.update({ accessKeyId : 'AKID

我正在使用dynamoDB和dynamoose处理节点js。例如,假设我们有一个表Employees,其中有两个属性Branch和Domain。我有一个给定的分支和域,现在我想获取给定分支或给定域下的所有员工。有人能举一个上述案例的例子吗?

这是查询和扫描的代码

代码连接到DynamoDB本地实例

使用的员工架构:-

var dynamoose = require('dynamoose');
dynamoose.AWS.config.update({
    accessKeyId : 'AKID',
    secretAccessKey : 'SECRET',
    region : 'us-east-1'
});
dynamoose.local();

var Schema = dynamoose.Schema;
var Table = dynamoose.Table;

var Employee = dynamoose.model('employee', { branch: String, domain: String });

Employee.get('UK').then(function (data) {
    console.log('Get :' + JSON.stringify(data));
});

Employee.query('branch').eq('UK').exec(function (err, data) {
  console.log('Query :' + JSON.stringify(data));
});


Employee.scan('domain').eq('Banking').exec(function (err, data) {
  console.log('Scan :' + JSON.stringify(data));
});
分支散列键

表中没有排序键

域-是属性

代码:-

var dynamoose = require('dynamoose');
dynamoose.AWS.config.update({
    accessKeyId : 'AKID',
    secretAccessKey : 'SECRET',
    region : 'us-east-1'
});
dynamoose.local();

var Schema = dynamoose.Schema;
var Table = dynamoose.Table;

var Employee = dynamoose.model('employee', { branch: String, domain: String });

Employee.get('UK').then(function (data) {
    console.log('Get :' + JSON.stringify(data));
});

Employee.query('branch').eq('UK').exec(function (err, data) {
  console.log('Query :' + JSON.stringify(data));
});


Employee.scan('domain').eq('Banking').exec(function (err, data) {
  console.log('Scan :' + JSON.stringify(data));
});
解释:-

var dynamoose = require('dynamoose');
dynamoose.AWS.config.update({
    accessKeyId : 'AKID',
    secretAccessKey : 'SECRET',
    region : 'us-east-1'
});
dynamoose.local();

var Schema = dynamoose.Schema;
var Table = dynamoose.Table;

var Employee = dynamoose.model('employee', { branch: String, domain: String });

Employee.get('UK').then(function (data) {
    console.log('Get :' + JSON.stringify(data));
});

Employee.query('branch').eq('UK').exec(function (err, data) {
  console.log('Query :' + JSON.stringify(data));
});


Employee.scan('domain').eq('Banking').exec(function (err, data) {
  console.log('Scan :' + JSON.stringify(data));
});
  • Employee.get(..)-通过哈希键获取数据

  • Employee.query(..)-根据需要通过哈希键和其他属性获取数据

  • Employee.scan(..)-根据非关键属性获取数据


以下是要查询和扫描的代码

代码连接到DynamoDB本地实例

使用的员工架构:-

var dynamoose = require('dynamoose');
dynamoose.AWS.config.update({
    accessKeyId : 'AKID',
    secretAccessKey : 'SECRET',
    region : 'us-east-1'
});
dynamoose.local();

var Schema = dynamoose.Schema;
var Table = dynamoose.Table;

var Employee = dynamoose.model('employee', { branch: String, domain: String });

Employee.get('UK').then(function (data) {
    console.log('Get :' + JSON.stringify(data));
});

Employee.query('branch').eq('UK').exec(function (err, data) {
  console.log('Query :' + JSON.stringify(data));
});


Employee.scan('domain').eq('Banking').exec(function (err, data) {
  console.log('Scan :' + JSON.stringify(data));
});
分支散列键

表中没有排序键

域-是属性

代码:-

var dynamoose = require('dynamoose');
dynamoose.AWS.config.update({
    accessKeyId : 'AKID',
    secretAccessKey : 'SECRET',
    region : 'us-east-1'
});
dynamoose.local();

var Schema = dynamoose.Schema;
var Table = dynamoose.Table;

var Employee = dynamoose.model('employee', { branch: String, domain: String });

Employee.get('UK').then(function (data) {
    console.log('Get :' + JSON.stringify(data));
});

Employee.query('branch').eq('UK').exec(function (err, data) {
  console.log('Query :' + JSON.stringify(data));
});


Employee.scan('domain').eq('Banking').exec(function (err, data) {
  console.log('Scan :' + JSON.stringify(data));
});
解释:-

var dynamoose = require('dynamoose');
dynamoose.AWS.config.update({
    accessKeyId : 'AKID',
    secretAccessKey : 'SECRET',
    region : 'us-east-1'
});
dynamoose.local();

var Schema = dynamoose.Schema;
var Table = dynamoose.Table;

var Employee = dynamoose.model('employee', { branch: String, domain: String });

Employee.get('UK').then(function (data) {
    console.log('Get :' + JSON.stringify(data));
});

Employee.query('branch').eq('UK').exec(function (err, data) {
  console.log('Query :' + JSON.stringify(data));
});


Employee.scan('domain').eq('Banking').exec(function (err, data) {
  console.log('Scan :' + JSON.stringify(data));
});
  • Employee.get(..)-通过哈希键获取数据

  • Employee.query(..)-根据需要通过哈希键和其他属性获取数据

  • Employee.scan(..)-根据非关键属性获取数据


什么是表的哈希键和排序键?什么是表的哈希键和排序键?