sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose najde všechny dokumenty, kde je array.length větší než 0, a seřadí data

Předpokládejme, že váš model se nazývá Employee :

Employee.find({ "departments.0": { "$exists": true } },function(err,docs) {

})

Jako $exists požádá o 0 index pole, což znamená, že má něco v sobě.

Totéž platí pro maximální počet:

Employee.find({ "departments.9": { "$exists": true } },function(err,docs) {

})

Takže to musí mít alespoň 10 položek v poli, aby se shodovaly.

Opravdu byste měli zaznamenat délku pole a aktualizovat pomocí $inc pokaždé, když se něco přidá. Pak můžete udělat:

Employee.find({ "departmentsLength": { "$gt": 0 } },function(err,docs) {

})

Na vlastnosti "departmentsLength", kterou ukládáte. Tuto vlastnost lze indexovat, což ji činí mnohem efektivnější.



  1. Přesouvání HDFS dat do MongoDB

  2. Jak se vypořádat se vztahy při používání mongodb

  3. node redis, proměnné jsou sdíleny mezi klienty?

  4. Má Pymongo zabudovaná ověřovací pravidla?