我是MongoDB和猫鼬的新手。
我正在使用以下模式和模型进行一些查询:
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)=>{});
非常感谢您的帮助。
发布于 2022-02-10 08:42:06
发布于 2022-02-10 08:46:29
还可以使用聚合查询来实现结果。
Article.aggregate(
[
{
'$project': {
'titleLength': { '$strLenCP': '$name' }
}
}, {
'$match': {
'titleLength': {
'$gt': 2
}
}
}
])
发布于 2022-02-10 08:51:07
这不是最好的方法,但有效。
我建议你不要在生产中使用这个。
首先从数据库中获取所有数据并将其存储在变量中,然后使用JavaScript筛选函数来完成任务。
,例如
let data = model.find({});
let filter_data = data.filter(data.title.length>8);
https://stackoverflow.com/questions/71068783
复制相似问题