Node.js 为什么可以';mongodb驱动程序不能处理$elemMatch或任何嵌入式查询吗?
我对node.js使用3.5 每当我想搜索这样的嵌入字段时:Node.js 为什么可以';mongodb驱动程序不能处理$elemMatch或任何嵌入式查询吗?,node.js,mongodb,Node.js,Mongodb,我对node.js使用3.5 每当我想搜索这样的嵌入字段时: SomeCollection.findOne({someObject: {embeddedField: thisString}}) 或者类似地使用$elemMatch: SomeCollection.findOne({someArrayOfObjects: {$elemMatch: {someField: thisString}}}) 它根本不起作用。在前一个示例中,我必须使用点符号,而在后一个示例中,没有任何东西(据我所知)对我
SomeCollection.findOne({someObject: {embeddedField: thisString}})
或者类似地使用$elemMatch:
SomeCollection.findOne({someArrayOfObjects: {$elemMatch: {someField: thisString}}})
它根本不起作用。在前一个示例中,我必须使用点符号,而在后一个示例中,没有任何东西(据我所知)对我有帮助
这种行为的意义是什么?为什么这些基本功能不起作用呢?它完全按照预期工作,您只需要学习查询语言 第一个查询精确地搜索“someObject”为
{embeddedField:thisString}
的文档,即子文档中没有其他字段
若要搜索“someObject”具有特定值的字段“embeddedField”的文档,无论子文档中的其他字段如何,都要使用点表示法。区分这两个查询是一个简单而优雅的解决方案。我承认这不是直观的,确实需要一些阅读
这同样适用于$elemMatch。它完全按照预期工作,您只需要学习查询语言 第一个查询精确地搜索“someObject”为
{embeddedField:thisString}
的文档,即子文档中没有其他字段
若要搜索“someObject”具有特定值的字段“embeddedField”的文档,无论子文档中的其他字段如何,都要使用点表示法。区分这两个查询是一个简单而优雅的解决方案。我承认这不是直观的,确实需要一些阅读
这同样适用于$elemMatch