0
我想创建一个查询或聚合,其中返回的文档不包含子文档。我不知道给定的字段会提前作为子文档(或者我只是使用投影来跳过它们)。因此,举例来说,如果我有一个这样的文件:MongoDB查询或聚合以跳过子文档
{
_id: 1,
field1: "a",
field2: "b",
field3: {
subfield1: "c",
subfield2: "d"
}
}
当我查询返回这个文件,它要么跳过场3,或者用别的东西(例如一个字符串=“field_is_an_object”)取代场3的值。
正如我所说,我不知道哪些字段将是子文档(或“对象”类型)。 $ redact操作符是我能找到的最接近的,但我无法弄清楚它的工作原理。
这工作......谢谢。详细的解释也很有帮助。我唯一的意见是,$ objectToArray操作在3.6中是新的,并且3.6还没有正式发布。我安装了最新的3.6版RC,它确实有效。 –
它在3.4中可用:https://docs.mongodb.com/manual/reference/operator/aggregation/objectToArray/ – dnickless
那真是令人尴尬。我在3.4.0,所以它不适合我;我可以发誓我看到了一些说“添加到3.6”的东西,所以这就是我安装的东西。虽然文档清楚地表明它是在3.4.4中添加的。再次感谢。 –