Node.js Monodb在内部文档中查找元素
我在mongodb集合中有以下数据Node.js Monodb在内部文档中查找元素,node.js,mongodb,Node.js,Mongodb,我在mongodb集合中有以下数据 { "_id" : ObjectId("5e09ad518f49801c3275cc54"), "user_id" : "100", "user_type" : "Demo", "created_date" : ISODate("2019-12-30T07:54:57.885Z"), "updated_date" : ISODate("2019-12-30T07:54:57.885Z"), "communicat
{
"_id" : ObjectId("5e09ad518f49801c3275cc54"),
"user_id" : "100",
"user_type" : "Demo",
"created_date" : ISODate("2019-12-30T07:54:57.885Z"),
"updated_date" : ISODate("2019-12-30T07:54:57.885Z"),
"communications" : [
{
"_id" : ObjectId("5e09ad558f49801c3275cc55"),
"import_date" : ISODate("2019-12-30T07:54:57.885Z"),
"service_provider" : "gmail",
"communication":[],
},
{
"_id" : ObjectId("5e09ad7f8f49801c3275cc57"),
"import_date" : ISODate("2019-12-30T07:55:36.906Z"),
"service_provider" : "outlook",
"communication":[],
}
],
"__v" : 1
}
我只想找到特定的通信节点,如gmail或outlook。我尝试了以下查询,但我从数组中获取了这两个元素
db.getCollection('emails').findOne({user_id:'100','communications.service_provider':'gmail'})
帮我做这个。
提前感谢您必须使用elemMatch,因为您正在阵列中搜索。试试这个
db.getCollection('emails').findOne({
user_id:'100',
communications: {
$elemMatch: { service_provider: { $eq:'gmail' } }
}
})
仍然从数组中获取两个元素