Mongo:找到没有点表示法的子文档

red*_*exp 8 mongodb

例如,我们有收集

{field: {subfield: 'name'}}
{field: {subfield: 'phone'}}
Run Code Online (Sandbox Code Playgroud)

我可以找到没有点符号的文档吗?像这样

db.test.find({field: {subfield: /regex/}})
Run Code Online (Sandbox Code Playgroud)

或者像这样

db.test.find({field: {$someOperator: {subfield: /regex/}}})
Run Code Online (Sandbox Code Playgroud)

我只是不想像点那样构建点符号

db.test.find({"field.subfield": /regex/})
Run Code Online (Sandbox Code Playgroud)

Sam*_*aye 5

问题是:

db.test.find({field: {$someOperator: {subfield: /regex/}}})
Run Code Online (Sandbox Code Playgroud)

实际上是在MongoDB中查询的另一种方法,它使用对象euqality来搜索子文档.

所以不,你必须使用点符号,除非你在寻找一个对象与另一个完全相等的位置.

这就是说,你可以换文档$elemMatch:http://docs.mongodb.org/manual/reference/operator/elemMatch/,将工作

编辑

考虑到你的集合结构$elemMatch实际上不会起作用.