Wie mache ich eine Mongodb-Sammlung find (db.collection.find) mit leeren Werten?(mongoDB) Suche mit leeren oder Null-Werten
zur Zeit ich habe:
function test(s) {
if (!s) {
return null;
} else {
return s;
}
}
var content = {
date: {
from: '2017-10-15',
to: '2017-11-15'
},
'name': 'some text', //this can be null or empty
'text': 'some other text' //this can be null or empty
}
col.find({
"date": {
$gte: new Date(content.date.from),
$lte: new Date(content.date.to)
},
"name": {
$ne: {
$type: null
},
$eq: test(content.name)
},
"text": {
$ne: {
$type: null
},
$eq: test(content.text)
},
}).toArray((err, items) => {
console.log(items)
});
aber es gibt eine leere Array, weil „name“ oder „text“ ist null/eine leere Zeichenkette, ich will, dass es Abfrage nur die Werte, die etwas angegeben haben oder es ignorieren (wie content.name ist etwas darin oder ist es leer)
wie bekomme ich es? ich suchte bereits ... aber fand nicht etwas
danke!
(Getestet bereits mongoDB : multi value field search ignoring null fields)
Versionen: Knoten: 8.9.0 (NPM) mongodb: 2.2.33 mongodb: 3.4
zu machen tryed, wenn "name" etwas (außer leer) ist, findet er immer noch alle anderen, wie i "t1" haben, "T2" und die Suche nach dem "t1" findet nach wie vor „t2 "(Name) – hasezoey
was ich im Treiber sehe, ist, dass es automatisch" $ und "macht, wenn es benötigt wird, und die" $ oder "... ich readed die docs, aber fand es nicht nützlich/fand nichts, was könnte help – hasezoey