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

Chỉ lấy phần tử khớp trong mảng đối tượng MongoDB

Dùng toán tử projection $elemMatch để lọc chỉ phần tử khớp trong mảng đối tượng. Tạo collection objectArray:

> db.objectArray.insert({"Persons":[ {"PersonName":"Adam","PersonSalary":25000},{"PersonName":"Larry","PersonSalary":27000} ]});
WriteResult({ "nInserted" : 1 })
> db.objectArray.insert({"Persons":[ {"PersonName":"David","PersonSalary":32000},{"PersonName":"Carol","PersonSalary":77000} ]});
WriteResult({ "nInserted" : 1 })

Hiển thị:

> db.objectArray.find().pretty();

Truy vấn chỉ lấy phần tử PersonSalary = 25000, loại bỏ _id:

> db.objectArray.find({"Persons.PersonSalary":25000}, { _id:0, Persons:{$elemMatch:{"PersonSalary":25000}}}).pretty();

Kết quả:

{ "Persons" : [ { "PersonName" : "Adam", "PersonSalary" : 25000 } ] }

Cách thay thế dùng positional operator $:

> db.objectArray.find({"Persons.PersonSalary":25000}, { _id:0, 'Persons.$':1}).pretty();

Kết quả tương tự.