在mongoDB中如何达到字段的价值" name"在对象数组中

时间:2018-05-14 17:02:26

标签: arrays mongodb object

我需要搜索有多少人拥有特定的朋友(按姓名),并且JSON中的每个记录都有一系列朋友。我怎样才能达到该领域的价值" name"在mongoDB shell中的对象数组?也许在对此字段执行搜索之前,需要将此字段编入索引?



"friends" : [{ "id" : 0, "name" : "Baird Fitzpatrick" }, { "id" : 1, "name" : "Karyn Benjamin" }, { "id" : 2, "name" : "Stacey Fuentes" }]



 enter image description here

1 个答案:

答案 0 :(得分:1)

您可以通过提供嵌套属性的路径来搜索mongodb中的嵌套对象:

db.YOURCOLLECTION.find({"friends.name": "ABC"});

详细了解nested object query here

  

在对此字段执行搜索之前,是否需要将此字段编入索引?

当然,您可以在嵌套字段上创建索引。只需提供一个带属性的索引就是上面嵌套字段的路径:

db.YOURCOLLECTION.createIndex( { "friends.name": 1 } )

如需提前使用,您可以阅读$regex query