mongodb - MongoDb:查询数组字段
问题描述
我reference
收集了这个对象:
> db.reference.find().pretty();
{
"_id" : "Ref1",
"metadata" : {
"values" : [
{
"hola" : "adeu"
},
{
"departament" : [
{
"ambit" : "just",
"name" : "ts"
}
]
}
]
},
"timestamp" : ISODate("2018-09-22T08:37:08.989Z"),
"_class" : "com.Reference"
}
我需要获取metadata.values
有对象的文档{hola: "adeu"}
。
我试过没有任何运气:
> db.reference.find({metadata: {values: {hola: "adeu"}}});
> db.reference.find({metadata: {values: [{hola: "adeu"}]}});
有任何想法吗?
解决方案
你可以这样做:
db.getCollection('reference').find({"metadata.values" : { "$in" : [{"hola" : "adeu"}] }});
当您想要单个对象时,您也可以像这样执行 elemMatch:
db.getCollection('reference').find({"metadata.values" : { "$elemMatch" : {"hola" : "adeu"} }})
推荐阅读
- python - 通过获取特定列在数据帧上使用循环
- php - 如何使用 Lumen 在单个数据库中动态租户 ID
- typescript - 如何使用打字稿在角度 6 中显示每个 HTTP 请求和 HTTP 响应的数字微调器
- java - 如果线程获得了对象的锁怎么办
- javascript - Blazor 子菜单
- python - 将熊猫数据框附加到数据块中的现有表中
- reactjs - React 的焦点问题
- oracle - JMeter 5.2.1 - 连接属性被忽略
- servicestack - 带有 emitLowercaseUnderscoreNames = true 的 Servicestack JsConfig 不适用于具有字母数字名称的属性
- git - 如何获取最新创建的远程 Git 分支列表?