У меня есть 2 вида документов в моем mongodb
первый - это как массив интересов
{
"_id" : ObjectId("5e7e4c3ad2b96e109e0d3842"),
"email" : "user@hotmail.com",
"interesse" : [
"interest 1",
"interest 2",
"interest 3"
],
"data" : 20170130,
"name" : "testename",
"gender" : "F"
}
, а второй - как большая строка интересов, разделенных /
{
"_id" : ObjectId("5e7e4cbbd2b96e109e6b748f"),
"email" : "user2@gmail.com",
"interesse" : "interest 3 / interest 4 / interest 5 / interest 6 / interest 7",
"data" : 20190122,
"name" : "user2",
"gender" : "F"
}
Я хочу выбрать только данные с большой строкой .. поэтому я могу применить свою функцию "stringToArray" ..
с помощью .find({interesse:{$type:'array'}})
я могу получить все type1
но если я использую
.find({interesse:{$type:'string'}}) i will get all registers in my base.
используя
.find({interesse:{$type:{$not:'array'}}})
я получу
Error: error: {
"ok" : 0,
"errmsg" : "type must be represented as a number or a string",
"code" : 14,
"codeName" : "TypeMismatch"
}
что я могу сделать, чтобы решить эту проблему?