Как найти документы в mon go, который не содержит элемент массива - PullRequest
1 голос
/ 27 марта 2020

У меня есть 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"
}

что я могу сделать, чтобы решить эту проблему?

1 Ответ

1 голос
/ 27 марта 2020

попробуй

.find({interesse:{$not:{$type:'array'}}})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...