二级索引 - ValidationException:提供的起始键无效
Secondary Index - ValidationException: The provided starting key is invalid
我使用 vogels 作为我的 DynamoDB 的对象映射器,
我有一个具有以下架构的 vogels 模型:
Stock: {
ID: String, (Hash)
DateUTC: String (Secondary Index)
}
如果我尝试这样做:
const query = Stock.query('VOD.XLON');
并加载所有项目,因为我有大约 5000 个:
query.loadAll();
query.exec((err, result) => {});
我收到错误:
ValidationException: The provided starting key is invalid.
我这边有什么地方做错了吗,或者 vogels 不能很好地加载所有具有二级索引的项目?
我无法重现这个问题。但是,以下代码适用于上述模型。
var Joi = require('joi');
var vogels = require('vogels');
var AWS = require("aws-sdk");
var creds = new AWS.Credentials('userid', 'password', 'session');
vogels.AWS.config.update({
region: "us-west-2",
endpoint: "http://localhost:8000",
credentials: creds
});
var Stock = vogels.define('Stock', {
hashKey: 'ID',
schema: {
ID: Joi.string(),
DateUTC: Joi.string()
},
indexes: [{
hashKey: 'DateUTC', name: 'stock_index', type: 'global'
}],
tableName: 'stock'
});
const query = Stock.query('1');
query.loadAll();
query.exec((err, result) => {if(!err) {console.log(JSON.stringify(result,undefined, 2))}});
我使用 vogels 作为我的 DynamoDB 的对象映射器, 我有一个具有以下架构的 vogels 模型:
Stock: {
ID: String, (Hash)
DateUTC: String (Secondary Index)
}
如果我尝试这样做:
const query = Stock.query('VOD.XLON');
并加载所有项目,因为我有大约 5000 个:
query.loadAll();
query.exec((err, result) => {});
我收到错误:
ValidationException: The provided starting key is invalid.
我这边有什么地方做错了吗,或者 vogels 不能很好地加载所有具有二级索引的项目?
我无法重现这个问题。但是,以下代码适用于上述模型。
var Joi = require('joi');
var vogels = require('vogels');
var AWS = require("aws-sdk");
var creds = new AWS.Credentials('userid', 'password', 'session');
vogels.AWS.config.update({
region: "us-west-2",
endpoint: "http://localhost:8000",
credentials: creds
});
var Stock = vogels.define('Stock', {
hashKey: 'ID',
schema: {
ID: Joi.string(),
DateUTC: Joi.string()
},
indexes: [{
hashKey: 'DateUTC', name: 'stock_index', type: 'global'
}],
tableName: 'stock'
});
const query = Stock.query('1');
query.loadAll();
query.exec((err, result) => {if(!err) {console.log(JSON.stringify(result,undefined, 2))}});