Javascript Mongodb查找查询数组以元素开头

Javascript Mongodb查找查询数组以元素开头,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我收集了以下文件: { "_id" : 1, "path" : [ 3, 1 ], "name" : "A" } { "_id" : 2, "path" : [ 3, 1, 1 ], "name" : "B" } { "_id" : 3, "path" : [ 3, 1, 1, 1 ], "name" : "C" } { "_id" : 4, "path" : [ 3, 1, 2 ], "name" : "D" } { "_id" : 5, "path" : [ 3, 1, 2, 1 ], "n

我收集了以下文件:

{ "_id" : 1, "path" : [ 3, 1 ], "name" : "A" }
{ "_id" : 2, "path" : [ 3, 1, 1 ], "name" : "B" }
{ "_id" : 3, "path" : [ 3, 1, 1, 1 ], "name" : "C" }
{ "_id" : 4, "path" : [ 3, 1, 2 ], "name" : "D" }
{ "_id" : 5, "path" : [ 3, 1, 2, 1 ], "name" : "E" }
{ "_id" : 6, "path" : [ 3, 1, 3 ], "name" : "F" }
{ "_id" : 7, "path" : [ 3, 2 ], "name" : "G" }
{ "_id" : 8, "path" : [ 3, 2,1 ], "name" : "H" }
现在我尝试查询哪个路径以3,1开头:

db.exp3.find({"path": {"$elemMatch": {"0": 3}}});
不工作


有什么提示吗

您可以按如下方式查询:

db.myObject.find({"path.0" : 3, "path.1" : 1})

或者,如果您可以将路径存储为字符串,则可以对其进行索引,并且可以使用“以查询开头”命令。您可以使用锚定查询使其使用索引。 e、 g


我找到了一个解决方案:db.exp3.find({$where:“this.path[0]==3&&this.path[1]==1”});是否有其他方法。请阅读有关使用
$where
db.so.insert({ "_id" : 1, "path" : "3/1", "name" : "A" })
db.so.insert({ "_id" : 2, "path" : "3/1/1", "name" : "B" })
....
db.so.ensureIndex({path:1})
db.so.find({path:/^3\/1/})