javascript - 为动态数量的键/值对创建 Mongoose 模式的正确方法

标签 javascript node.js mongodb mongoose

我有一个字数统计函数,它返回一个带有一组键值对的对象。像这样:{a: 4, tale: 3, of: 8, two: 3, urban: 3 }

显然这个对象可以有不同的长度并且有不同的键/值对。我想将此数据添加到 Mongodb 中的“文章”文档中。使用 mongoose.js 这是我能想到的最好的模式。我担心 mongo 正在创建大量带有一个键/值对和一个 ID 的“Word”文档。有没有更好的办法?

在/models/article.js 中

mongoose.Schema({
  wordcounts: [wordSchema]
})

在/models/word.js 中

mongoose.Schema({
  word: String,
  count: Number
})

所以它最终看起来像:

[{
_id: 3980923urjf0e232902343252,
wordcounts: [
  {_id: 2039840297502938402934, word: "Apple", count:3}, 
  {_id: 20398sdfsdfsdfaaa4asd3, word: "Banana", count:5}
  ]
}]

有没有更好的办法?

最佳答案

如果不需要索引,可以使用Schema.Types.Mixed(参见:http://mongoosejs.com/docs/schematypes.html)

否则,您不必定义子集合,因为您可以将其定义为:

mongoose.Schema({
  wordcounts: [{
    word: String,
    count: Number
  }]
})

关于javascript - 为动态数量的键/值对创建 Mongoose 模式的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684036/

相关文章:

javascript - JS d3条形图不显示数据

JavaScript 空对象类型

javascript - 带 LIMIT 的 MySQL 查询并按 block 更新数据

node.js - MongoDb 按日期分组并分页

javascript - 在 TinyMCE 中获取所选图像的 src

javascript - 浏览器重新格式化我的 HTML,导致不同的外观

html - SVG 在 Node.js 中显示不正确

javascript - 使用 Node.js 使用流将视频上传到 Youtube

mongodb - 来自标准输入的 Mongorestore

Spring data MongoDB更新多个字段