问题标签 [dynamoose]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
250 浏览

amazon-dynamodb - aws-sdk/dynamoose 是否可能在本地 DynamoDB 上导致 SQLite 语法错误?

上下文

从 Nodejs 6 升级到 12 以及项目的依赖项时发现问题。使用 dynamoose 2.3 使用 docker-compose 的容器化应用程序:仅后端和 dynamodb 实例

dynamodb 的 Docker 文件:

问题:提起容器时,在后端初始化 dynamodb 实例后抛出以下错误,导致任何后续查询或调用停止并在后端超时返回。

错误

我怀疑在通过 Dynamoose 的 model() 创建表时会发生这种情况,该模型在后台调用 aws 的 DynamoDB createTable 方法。

我目前正在分析升级到 nodejs 12 和 dynamoose 2.3。在本地,我更愿意让它运行以测试项目的其他部分,所以我不介意更新索引和重新创建表,但想知道这个语法错误来自哪里来修复它并继续。

问题: aws-sdk 或 dynamoose 是否可能导致 DynamoDB 本地实例尝试删除带有 SQLite 语法错误的索引?

0 投票
0 回答
83 浏览

amazon-dynamodb - Dynamoose 中的虚拟字段

Dynamoose 支持schema.virtual()吗?或者有什么方法可以实现同样的行为?

我在 v2 文档中看不到它,但过去似乎对它有某种支持 - 请参阅this

我知道 Dynamoose 深受 Mongoose 的启发,而 Mongoose 具有这里所示的功能

0 投票
1 回答
731 浏览

aws-lambda - 用户无权执行:dynamodb:CreateTable on resource:

当我尝试运行register查询 table的 lambda 函数example_user时,它会抛出以下错误。我的代码只是试图从表中获取数据example_user而不是创建任何表。

{"errorType":"Runtime.UnhandledPromiseRejection","errorMessage":"AccessDeniedException: User: arn:aws:sts::577777777777:assumed-role/example-user-api-dev-ap-southeast-1-lambdaRole/example-user-api-dev-register is not authorized to perform: dynamodb:CreateTable on resource: arn:aws:dynamodb:ap-southeast-1:577777777777:table/example_user","reason":{"errorType":"AccessDeniedException","errorMessage":"User: arn:aws:sts::577777777777:assumed-role/example-user-api-dev-ap-southeast-1-lambdaRole/example-user-api-dev-register is not authorized to perform: dynamodb:CreateTable on resource: arn:aws:dynamodb:ap-southeast-1:577777777777:table/example_user"

之后抛出错误13 UserController with email

这是我的代码:

User.js

UserController.js

下面是我serverless.yml文件中的一个片段

0 投票
1 回答
519 浏览

node.js - 在 Dynamoose 中查询 OR 条件

我需要与此 SQL 查询等效的 dynamoose 查询 select * from employees where first_name like '%fish%' or last_name like '%fish%'

我尝试了下面的代码,但不起作用。

谁能指导我。

0 投票
1 回答
219 浏览

amazon-dynamodb - Dynamoose:提供的关键元素与架构不匹配

嗨,我知道以下错误:

提供的关键元素与架构不匹配

这里有一些答案,但没有一个对我有帮助,因为我已经将这些建议应用于我的问题并且它仍然存在。

我正在为我的数据库使用 Dynamoose 和 Koa.js,这里的后端是我的模型模式:

如您所见,我选择email了我的哈希键,因为它既是必需的又是唯一的。

这是我的控制器代码:

当我使用名称、电子邮件和密码的 json 值发出发布请求时,我收到以下错误。我也尝试过User.get(email)两者都抛出相同的错误。这是控制台完整记录的内容:

在此处找到的常用解决方案告诉我将我正在搜索的内容与哈希键(AWS 文档中的分区键)相匹配。当我通过电子邮件搜索并将电子邮件设置为我的哈希键时,我已经这样做了。有人可以帮我解决这个问题吗?

0 投票
1 回答
1070 浏览

amazon-dynamodb - 如何在 Dynamoose/DynamoDB 中建模关系?

我需要用户与发票相关联。在 SQL 数据库中,它将是一个外键。我怎样才能在 Dynamoose 中做到这一点?

其他表中的每条记录都必须拥有所有者作为创建它的用户。

0 投票
3 回答
718 浏览

amazon-dynamodb - 使用哈希键更新 Dynamoose 模型

我正在尝试对 dynamoose 模型执行更新。这是关于调用的文档model.update

key可以是表示hashKey的字符串或包含hashKeyrangeKey的对象。

我的架构同时具有哈希键(分区键)和范围键(排序键),如下所示:

我创建了一个像这样的对象(带有固定的演示时间戳)

我希望能够status通过引用id这样的属性来更新属性:

但两者都导致显示的错误:

如果我知道时间戳,我可以传入完整的复合键,因此以下起作用:

但是,这需要我坚持时间戳并与 id 保持一致。

在我的例子中,ID 字段本身应该是唯一的,所以我不需要两者都创建一个键,但想将日期添加为范围键以便它是可排序的。我应该只更新我的架构,以便只有一个哈希键吗?我在想那些说“`key可以是代表hashkey的字符串”的文档会让我只传递ID,但这会在编译时引发错误(在打字稿中)。

有什么建议么?

0 投票
1 回答
388 浏览

amazon-dynamodb - dynamodb 项目条目中缺少 createdAt

我有一个dynamodb表,我声明使用dynamoose如下:

据我了解,当我"timestamps": true声明时,它应该同时 createdAt具有和 updatedAt字段。

所以当我运行看起来像这样的代码时

当我在 Amazon DynamoDB 管理控制台中检查插入/更新的数据时,没有createdAt,只有updatedAt. 按理说我应该也createdAt太对了吧?如果没有,如何确保createdAt永远存在?

0 投票
1 回答
94 浏览

node.js - 在节点中使用 dynamoose 在 dynamodb 模式中搜索值列表

我有一个发电机数据库模式可以说是这样的

我想搜索一个可以说特定存储库“abc”的项目。我该如何搜索?

到目前为止,我尝试了类似 team.scan({ bitbucketDetails: { contains:"abc" }}).all().exec() 但一直说 ValidationException:一个或多个参数值无效:ComparisonOperator CONTAINS 对 M 无效属性值类型。

请帮忙!!

0 投票
2 回答
605 浏览

typescript - TypeScript Schema 中的 Dynamoose 嵌套映射/数组

我正在尝试为以下示例创建架构:

我最初试图做以下结构,这在技术上是正确的,应该可以工作,但由于https://github.com/dynamoose/dynamoose/issues/909中发现的错误而失败。

但是,它似乎不起作用。越来越TypeError: Cannot read property 'toLowerCase' of undefined。由于嵌套数组或对象,会发生小写错误。

我也看到了TypeMismatch: Expected foods.0.fruits to be of type object, instead found type object.后者发生在我试图改变架构时认为可能是它,但这不是问题。

  • 这是使用版本 2.7.0。