mongodb - 是否可以检索 mongodb 中对象内的对象数组中的特定值

标签 mongodb mongodb-query spring-data-mongodb

是否可以检索 mongodb 中另一个对象内的对象数组中的特定值?

@Document
class vehicleStation {
   @Id
   String stationId;
   List<car> cars;
}
@Document
class car{
   @Id
   String carNo;
   String name;
}

我的 json 结构如下所示

{"_id":"0001","cars":[{"_id":"C001", "name":"Honda"},{"_id":"C002","name":"Ford"}]}

是否可以检索特定vehicleStation(stationId =“0001”和carNo =“C002”)的“名称”值,即“Ford”

如何查询mongodb以获取vehicleStation的值“Ford”(stationId =“0001”和carNo =“C002”)

最佳答案

您可以使用 $elemMatch projection 来做到这一点运算符(operator)。例如从外壳

> db.so.find({_id:"0001"},{cars:{$elemMatch:{"_id":"C002"}}})
{ "_id" : "0001", "cars" : [  {  "_id" : "C002",  "name" : "Ford" } ] }

关于mongodb - 是否可以检索 mongodb 中对象内的对象数组中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20684456/

相关文章:

node.js - Mongoose 按引用查找不返回任何内容

arrays - 连接来自 mongoDB 中不同对象的所有数组

mongodb - 如何使用 ID 数组查询 mongodb

java - Mongodb 与 java 中的 in 子句不同

java - MongoDB 无法使用复杂对象作为键值 Java

node.js - JavaScript : Empty array after foreach loop

node.js - 使用 mongodb 和 nodejs 在 passportjs 中授权多个本地策略

javascript - 检索包含与查询匹配的文档子集和匹配总数的文档

spring-cloud-stream 在测试中与 spring-boot-data-mongodb 冲突

spring-data - 额外的引号被添加到 @Query