Предположим, что у нас было что-то вроде следующего документа, но мы хотели бы вернуть только те поля, которые имели числовой информации:Есть ли способ, чтобы спроектировать тип поля
{
"_id" : ObjectId("52fac254f40ff600c10e56d4"),
"name" : "Mikey",
"list" : [ 1, 2, 3, 4, 5 ],
"people" : [ "Fred", "Barney", "Wilma", "Betty" ],
"status" : false,
"created" : ISODate("2014-02-12T00:37:40.534Z"),
"views" : 5
}
Теперь я знаю, что мы можем запросить для полей, которые соответствуют определенному типу с использованием оператора $type. Но я еще не наткнулся на способ $ project this в качестве значения поля. Так что, если мы смотрели на документ в «смотанной» форме вы увидите это:
{
"_id" : ObjectId("52fac254f40ff600c10e56d4"),
"name" : 2,
"list" : 16,
"people" : 2
"status" : 8,
"created" : 9,
"views" : 16
}
Конечная цель будет список только поля, которые совпадающая определенного типа, скажем, сравнить, чтобы получить числовые типы и отфильтровать поля, после большого количества документов коверкая, для получения результата следующим образом:
{
"_id" : ObjectId("52fac254f40ff600c10e56d4"),
"list" : [ 1, 2, 3, 4, 5 ],
"views" : 5
}
кто-нибудь есть подход справиться с этим.
Да. Это тоже мое мышление. Это произошло из-за другого вопроса, который в основном хотел отфильтровать поля таким образом. Может быть, оператор ** $ type ** в агрегации был бы хорош, в значительной степени по линии операторов даты, но я действительно не уверен в широкой полезности такой вещи. –