Computer >> Máy Tính >  >> Lập trình >> MongoDB

Làm cách nào để nhận một mảng giá trị (thay vì một mảng json) lớn hơn 50 trong MongoDB?

Để tránh nhận mảng json và nhận một mảng giá trị, hãy sử dụng $ in. Để lớn hơn, hãy sử dụng MongoDB $ gt. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo50.save({"Value":40});
WriteResult({ "nInserted" : 1 })
> db.demo50.save({"Value":100});
WriteResult({ "nInserted" : 1 })
> db.demo50.save({"Value":20});
WriteResult({ "nInserted" : 1 })
> db.demo50.save({"Value":510});
WriteResult({ "nInserted" : 1 })

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.demo50.find();

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5e270c02cfb11e5c34d89903"), "Value" : 40 }
{ "_id" : ObjectId("5e270c05cfb11e5c34d89904"), "Value" : 100 }
{ "_id" : ObjectId("5e270c07cfb11e5c34d89905"), "Value" : 20 }
{ "_id" : ObjectId("5e270c11cfb11e5c34d89906"), "Value" : 510 }

Sau đây là truy vấn để nhận một mảng giá trị trong MongoDB lớn hơn 50 -

> listOfValues = db.demo50.distinct("_id", {Value:{$gt:50}});
[
   ObjectId("5e270c05cfb11e5c34d89904"),
   ObjectId("5e270c11cfb11e5c34d89906")
]
> db.demo50.find({_id:{$in:listOfValues}});

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5e270c05cfb11e5c34d89904"), "Value" : 100 }
{ "_id" : ObjectId("5e270c11cfb11e5c34d89906"), "Value" : 510 }