我是 MongoDB 和 Mongoose 的新手。
我正在使用以下模式和模型練習一些查詢:
const articleSchema = mongoose.Schema({
title: String,
content: String,
});
const Article = mongoose.model('article', articleSchema);
假設我添加了以下兩個檔案:
{title: "One", content: "Content One"}
{title: "LongerTitleThanOne", content: "Content Two"}
我可以使用哪個查詢來查找“標題”長度大于 3 的所有檔案?
我嘗試了以下查詢,但它只適用于數字:
Article.find({title:{$gt:3}}, (err,foundItems)=>{});
非常感謝您在這里的幫助。
uj5u.com熱心網友回復:
你可以使用$strLenCP和$expr:
蒙哥游樂場
Article.find({
"$expr": {
"$gt": [
{
"$strLenCP": "$title"
},
3
]
}
})
uj5u.com熱心網友回復:
您還可以使用聚合查詢來實作結果。
Article.aggregate(
[
{
'$project': {
'titleLength': { '$strLenCP': '$name' }
}
}, {
'$match': {
'titleLength': {
'$gt': 2
}
}
}
])
uj5u.com熱心網友回復:
這不是最好的方法,但它有效
我建議您不要在生產中使用它。
首先從資料庫中獲取所有資料并將其存盤在變數中,然后使用 JavaScript 過濾器功能來完成您的任務
例如
let data = model.find({});
let filter_data = data.filter(data.title.length>8);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/424011.html
標籤:javascript 节点.js 数据库 mongodb 猫鼬
