【问题标题】:Changing the KeystoneJs List does not reflect in mongoDB collection更改 KeystoneJs 列表不会反映在 mongoDB 集合中
【发布时间】:2019-09-08 22:20:40
【问题描述】:

我用一个简单的例子和​​一个伪代码来解释这种情况。这是我在 KeystoneJs 中的 products 架构:

ProductSchema.add({
    title: { type : String}
})

添加1000个产品后,客户要我在产品模型中添加published字段,所以我将代码更改如下:

ProductSchema.add({
    title: { type : String},
    published: {
    type: Boolean,
    default: true
    }
})

现在,当我想查找所有已发布的产品时,我会这样做:

ProductModel.model.find({published: true});

但是这个查询什么都没有返回,我知道原因是当我将published字段添加到productSchema时,这个更改没有反映在数据库中,现在如何使keystone为每个文档添加一个published字段在 MongoDB 集合中?

【问题讨论】:

  • 您可以使用 Keystone 的 Application Updates 框架将数据/架构更改应用于现有文档。

标签: keystonejs


【解决方案1】:

更改 keystone 架构不会影响数据库,这意味着下次创建条目时,它将填充默认值。我不确定它是否还会更新从 db 获取的默认值(我记得在代码中看到过类似的内容,但可能是其他内容)。

您必须运行自定义查询,无论是独立脚本还是作为整个应用程序的一部分。

【讨论】:

  • 谢谢你的回答,你能给我看一些自定义查询的例子吗?
猜你喜欢
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 2012-03-22
  • 2019-07-06
  • 1970-01-01
相关资源
最近更新 更多