Я использую следующую схему документа:
//User Document
{
"_id": "0610457c-b25b-4e73-b859-11987a3fe271",
"FirstName": "Some Name",
"LastName": "surname",
// it is array of ledger items
"LedgerBook": [
{
"AccountId": "aadfgdf6319d3-1a12-4575-9776-c6653sdfg5c32527",
"TransactionId": "ef98bbc4-3efb-46dc-b632-5adfgdfg1fcc378446",
....
},
...
]
и когда я пытаюсь применить запрос db.users.find({ "LedgerBook" : { "$type" : 4 } }).limit(50);
, он ничего не возвращает, но для запроса db.users.find({ "LedgerBook" : { "$type" : 3 } }).limit(50);
работает хорошо (возвращает все документы, в которых есть элементы LedgerBook).
Почему это происходит?
type = 4 - Array, а type = 3 - Object.
Я хочу получить все документы, в которых есть хотя бы один элемент LedgerBook.