【问题标题】:How do I add new fields to mongodb in production and query?如何在生产和查询中向 mongodb 添加新字段?
【发布时间】:2019-07-07 08:31:33
【问题描述】:

关于 mongo db 的结构问题。我有一个 node/express/mongoose 应用程序查询我的 mongo 数据库以获取我的 rest api 并让它在生产中运行。

我想添加新字段进行查询,但我遇到的问题是很多旧文档不会有这些新字段。添加新字段和查询的最佳方法是什么?我用过field :{ exists: true } 并且有效,但是如果这些新字段是真还是假,我该如何查询字段?

我想查找所有文档,而不仅仅是该特定字段是否存在。甚至不确定这是否可行,我可能需要将新字段添加到每个文档中?

【问题讨论】:

  • 如果文档中不存在该字段,则判断为真还是假?

标签: mongodb mongoose


【解决方案1】:

如果您要查询的字段在任何文档中都不存在,则该文档将被丢弃。为了演示它,这是我在一个集合中拥有的两个文档,这些文档中没有我要查询的字段。 Mongo 简单返回文档that matched 查询需求

示例文档

{
    "_id": 2,
    "description": "QUESTION",
    "names": [
      "A",
      "B",
      "C",
      "D",
      "E"
    ]
  },
  {
    "_id": 3,
    "description": "ANSWER",
    "newField1": "I have some value",  <=== new field only for this doc
    "names": [
      "A2",
      "B2",
      "C2",
      "D2",
      "E2"
    ]
  }

我的查询

db.collection.find({
  "newField1": "I have some value"
})

结果

{
    "_id": 3,
    "description": "ANSWER",
    "names": [
      "A2",
      "B2",
      "C2",
      "D2",
      "E2"
    ],
    "newField1": "I have some value"
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-27
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 2017-06-24
    • 1970-01-01
    相关资源
    最近更新 更多