Tôi không biết cách tốt hơn nhưng bạn luôn có thể xử lý bằng JavaScript qua $where
:
jsStr = """var doc = this;
return ['result1','result2','result3']
.every(function(key) {
return doc.hasOwnProperty(key)
});"""
coll.find({ "$where": jsStr })
Nhưng bạn sẽ phải chỉ định một mảng "chìa khóa" để kiểm tra một nơi nào đó.
Nếu bạn nghĩ rằng bạn có rất nhiều khóa để nhập, thì tại sao không chỉ cần "xây dựng" biểu thức truy vấn của bạn:
whitelist = [ "result1", "result2", "result3" ]
query = {}
for key in whitelist:
query[key] = { "$exists": True }
coll.find(query)
Điều đó giúp tiết kiệm một chút công việc nhập và vì tất cả các truy vấn MongoDB dù sao cũng chỉ là cấu trúc dữ liệu nên việc sử dụng thao tác dữ liệu cơ bản để xây dựng các truy vấn là rất hợp lý.