【问题标题】:In Mongoose, how do you find an array of objects where an object has a specific key/value?在 Mongoose 中,如何找到对象具有特定键/值的对象数组?
【发布时间】:2015-09-16 10:08:59
【问题描述】:

在 Mongoose 模型 Person 中,有一个名为 matches 的对象数组。

matches 看起来像

     [
        {
            "$oid": "558ced061d35bd072e7b5825"
        },
        {
            "$oid": "558ced061d35bd072e7b58a0"
        },
        {
            "$oid": "558ced061d35bd072e7b58c6"
        }
    ],

我想创建一个查询,以查找在其matches 数组中具有 ID 的 Person

问题是匹配的查询似乎只适用于字符串数组,比如

models.Person.find({matches: 558ced061d35bd072e7b58c6})

但不适用于包含字符串值的对象数组。

有谁知道如何做到这一点?

【问题讨论】:

  • 你用过$elemMatch

标签: arrays mongodb mongoose


【解决方案1】:

您可以将字符串转换为 ObjectId 并在查询中使用它,如下所示:

var mongoose = require("mongoose"),
    person_id  = mongoose.Types.ObjectId("558ced061d35bd072e7b58c6");

models.Person.find({ "matches": person_id }).exec(callback);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2019-03-31
    相关资源
    最近更新 更多