有关mongo db的结构问题。我有一个node / express / mongoose应用程序,在我的mongo数据库中查询我的其余api,并使其在生产环境中运行。
我想添加新字段以进行查询,但是我遇到的问题是许多旧文档将没有这些新字段。添加新字段和查询的最佳方法是什么?我已经使用过field :{ exists: true }
且可以使用,但是如果这些新字段为true或false,如何查询字段?
我想查找所有文档,而不仅仅是查找特定字段是否存在。甚至不确定是否可行,我可能需要将新字段添加到每个文档中吗?
答案 0 :(得分: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"
}