【问题标题】:How to find a document where either one or another field matches a value?如何找到一个或另一个字段与值匹配的文档?
【发布时间】:2014-09-14 19:31:34
【问题描述】:

我的模型是,

var userSchema = new Schema({
    first_name : String,
    last_name : String,
    ...
});

由此,我需要做搜索过滤选项。为此,我传递了 name 参数值。

现在我想返回包含first_name == namelast_name == name 的文档

如何为此编写查询?

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:
    User.findOne({
        $or: [
            {first_name: name},
            {last_name: name},
        ],
    }, function(err, user) {
        ...
    })
    

    如果您希望有多个文档匹配 name 等于 first_name 或 last_name,请使用 find

    【讨论】:

    • 文本索引和相应的搜索也可能有效。
    • 不确定它是否适用于 Ranjith,但这种方法确实有效(它适用于我)。注意是否需要搜索多种类型(如 String 和 ObjectId),因为如果您将 ObjectId 传递给不符合要求的字符串,则会收到 Cast Error。
    猜你喜欢
    • 2015-07-28
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    相关资源
    最近更新 更多