gpt4 book ai didi

node.js - 在 mongoose mongodb 中使用 $or 返回部分文档

转载 作者:太空宇宙 更新时间:2023-11-03 23:37:21 25 4
gpt4 key购买 nike

User.find({
$or:[
{'userSetData.name': { $regex: new RegExp( searchTerm ,'i') }},
{'local.email': { $regex: new RegExp( searchTerm ,'i') }},
{'google.name': { $regex: new RegExp( searchTerm ,'i') }},
{'google.email': { $regex: new RegExp( searchTerm ,'i') }},
{'facebook.name': { $regex: new RegExp( searchTerm ,'i') }},
{'facebook.email': { $regex: new RegExp( searchTerm ,'i') }}
]
}, function(err, doc) {
if( err ){
console.log( err );
}
return doc;
});

上述查询会获取电子邮件或姓名与搜索条件匹配的所有用户。然而,正如预期的那样,它返回找到的用户的整个文档..

http://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/在 mongodb 网站上,他们演示了如何使用投影来限制返回的文档的字段,例如:

db.inventory.find( { type: 'food' }, { item: 1, qty: 1, _id:0 } )

是否可以将 mongoose 的 $or 与 mongo 的 projection 选项结合起来,或者后处理是唯一的选择?

最佳答案

您应该能够将另一个对象传递给您的查找并使用投影

User.find({
$or:[
{'userSetData.name': { $regex: new RegExp( searchTerm ,'i')
}},
{'local.email': { $regex: new RegExp( searchTerm ,'i') }},
{'google.name': { $regex: new RegExp( searchTerm ,'i') }},
{'google.email': { $regex: new RegExp( searchTerm ,'i') }},
{'facebook.name': { $regex: new RegExp( searchTerm ,'i') }},
{'facebook.email': { $regex: new RegExp( searchTerm ,'i') }}
]
}, {<projection goes here>},
function(err, doc) {
if( err ){
console.log( err );
}
return doc;
});

来源http://mongoosejs.com/docs/api.html#model_Model.find

关于node.js - 在 mongoose mongodb 中使用 $or 返回部分文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30561379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com