猫鼬查询无法按预期工作,但在指南针中工作



这是模式的相关部分:

{
info: {
// item_info can be undefined
item_info: {
enchants: [{name: String, level: Number}]
}
}
}

info和item_info都是独立的模式,_id设置为false(如果相关,则为dk(

这是一个示例查询:

{"info.item_info.enchants": {$all: [{name: "growth", level: 5}, {name: "protection", level: 5}]}}

MongoDB Compass中抛出该查询可以正常工作。返回附魔字段中同时包含{name:"growth",级别:5}和{name:"protection",级别为5}的所有文档

<型号名称>。find((返回没有item_info字段(?(的所有文档

相同的查询,但在中使用$而不是$all可以按预期工作(返回数组中有任何一个元素的文档(,也可以不使用运算符直接放入数组(返回恰好有这两个元素的文件(

附魔场过去看起来是这样的:

// skipping the other fields
enchants: [
{"protection": 5},
{"growth": 5}
]

而不是我现在所拥有的名称和级别字段以及$all运算符工作得很好。

有什么解决办法吗?

原来我还更改了模式中的一些内容。

附魔场过去是enchants: Array,当它工作正常时,而不是
CCD_ 2。

显式设置数组的内容类型似乎会破坏对数组的$all查询。

最新更新