Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Truy vấn native MongoDB trong mảng và đếm với $exists

Dùng $exists trong query để đếm document có trường (kể cả trong mảng object) tồn tại.

Tạo collection demo296 với cấu trúc phức tạp (một số document có SubjectName, số không):

> db.demo296.insertOne({id:101,Name:"Chris",details:[{SubjectId:[101,103],SubjectName:["MySQL","MongoDB"]},{SubjectId:[102,104],SubjectName:["Java","C"]}]});
> db.demo296.insertOne({id:102,Name:"David",details:[{SubjectId:[110,113]},{SubjectId:[112,114]}]});
> db.demo296.insertOne({id:103,Name:"Bob",details:[{SubjectName:["C++","Python"]},{SubjectName:["Spring","Hibernate"]}]});

Đếm document có details.SubjectName tồn tại:

> db.demo296.count({'details.SubjectName':{$exists:true}});

Kết quả: 2 document (id 101 và 103 có SubjectName):

2