我有简单的收藏:
nom: {
type: String,
},
prenom:{
type: String,
},
categorie:{
type: String,
},
age:{
type:String,
} ,
ville : {
type : String
}
我希望找到一种简单的方法来将多个搜索和过滤元素转换为表格。例如按名称和年龄过滤,或按年龄和城市过滤。或者全部过滤 这是我的表: my table
在我的情况下,在没有searchengine包的情况下在mongodb和meteor上制作这个多重过滤器的最佳方法
答案 0 :(得分:0)
在 MongoDB 上使用直接查询时,您可以使用以下示例:
检查字段存在的最简单方法是使用$exist:
db.collectionName.find({fieldName: {$exists: true}})
如果您要查找特定字段值:
db.collectionName.find({'fieldName': 'value'})
$or和存在的组合可能看起来像这样:
db.collectionName.find({ $or: [ {name: {$exists: true}}, {age: {$exists: true}} ] })
对于多个 $或,您可以使用以下查询:
db.collectionName.find({ $or: [ {name: {$exists: true}}, {age: {$exists: true}} ] },
{ $or: [ {age: {$exists: true}}, {city: {$exists: true}} ] })
答案 1 :(得分:0)
这是我倾向于进行搜索的方式,因此它也会发现类似的结果。因此,如果我的结果中有一个字母“A”,如果我搜索“A”,它将显示带有字母“A”的所有内容,直到我得到更具体的信息。
请注意,您可能希望将搜索值和搜索键设为小写,因为“A”!=“a”并且不会返回任何内容。
我还提出了一个int值,你只是提出了这个问题。
let collection = yourCollection.find({
"nom": {
$regex: ".*CONDITION_VALUE.*"
},
"prenom": {
$regex: ".*CONDITION_VALUE.*"
},
"categorie": {
$regex: ".*CONDITION_VALUE.*"
},
"age": {
$gt: minAge,
$lt: maxAge
},
"ville": {
$regex: ".*CONDITION_VALUE.*"
}
});