我正在使用 Node 和 React 创建一个片段管理器,就像我们可以在我工作的地方使用的一个学习项目一样。
我之前使用 Express、Mongoose 和 mLab 进行了设置。抱着学习和挑战自我的心态,我想转而使用 AWS 的 DynamoDB。
我发现 Dynaamoose 这将是一个很大的帮助,因为 API 几乎与 Mongoose 相同。但是,我似乎无法弄清楚如何重新创建 Schema.Types.ObjectId 的作用。
const SnippetSchema = new Schema({
id: {
type: String,
default: shortid.generate(),
hashKey: true
},
user: {
type: Schema.Types.ObjectId,
ref: 'users'
},
category: {
type: Schema.Types.ObjectId,
ref: 'categories'
},
code: {
type: String,
required: true
},
title: {
type: String,
required: true
}});
它的格式不完美,但基本上我如何让它以相同的方式引用我的用户和我的类别?
最佳答案
与 Mongoose 和 MongoDB 不同,Dynamoose 和 DynamoDB 没有默认的 _id 属性。因此,DynamoDB/Dynamoose 中没有 Schema.Types.ObjectId
之类的东西。
看起来您想要做的是类似于 .populate
的事情。
就我个人的项目而言,我只是使用 .get
手动处理所有关联。
在上面的架构示例中, id
属性将是您的主键。在 DynamoDB 中,主键必须是唯一的,否则它们将覆盖现有项目(除非您进行了一些检查)。
从这里我认为您可以构建一个系统来为您的每个文档生成 id,然后通过该 id 将其关联。我通常为此属性使用字符串,但我认为它在技术上可以是任何受支持的 DynamoDB 属性类型。
希望这有助于您入门。如果它没有意义或者您需要更多帮助,请随时发表评论。作为 Dynamoose GitHub Project 的成员,我非常活跃,所以也可以随意创建问题或内容。我尝试每天检查一次 Stack Overflow 上的 Dynamoose
标签。我的联系方式也很容易找到。
祝您迁移到 Dynamoose 好运,如果您遇到任何其他问题或有任何其他问题,请告诉我!!
关于node.js - 等效于 Dynamoose 中的 Schema.Types.ObjectId,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52678866/