簡體   English   中英

Mongodb查找查詢數組以element開頭

[英]Mongodb find query array starts with element

我有文件的集合,如:

{ "_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})

或者,如果您可以將路徑存儲為字符串,那么您可以將其編入索引並以查詢開頭,您可以使用錨定查詢使其使用索引。 例如

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/})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM