【问题标题】:MongoDB query to find an ID of a referenced modelMongoDB 查询以查找引用模型的 ID
【发布时间】:2018-06-07 21:18:29
【问题描述】:

我正在尝试查找引用到另一个模型的模型的 ID。 我有一个包含一系列挑战的用户模型,我必须找到特定用户存在的挑战 ID

我的用户模型:

var UserSchema = new mongoose.Schema({
image: String,
displayName: String,
firstName: String,
lastName: String,
password: String,
email: String,
createdAt: Date,
accessToken: String,
isLoggedIn: Boolean,

challenges:[
    {
        type: mongoose.Schema.Types.ObjectId,
        ref:"Challenge"
    }
]
});

我的挑战模型:

var  ChallengeSchema =  new mongoose.Schema({
winner: Boolean,
score: String
});

例如: 如果我的用户 ID 为 1 且挑战 ID 为 89,我必须检查 ID 为 1 的特定用户是否存在挑战 ID。

【问题讨论】:

    标签: database mongodb mongoose nosql


    【解决方案1】:

    这是用于检查 id 为 1 的特定用户是否存在挑战 id (89) 的查询。

    User.count({
        _id: 1, // User ID 
        challenges: {
            "$in": [89] // Challenge Id 
        }
    }).exec(function(err, count){
        if(err){
            // Handle error
        } else {
            if(count > 0){
                // If count greater than 0 than user(ID-1) contains challenge(ID-89)
            }
        }
    });
    

    【讨论】:

      【解决方案2】:

      MongoDB 是面向文档的,没有连接。理论上,关于一个对象的所有数据都存储在此类数据库中的一个文档中。 因此,在您的情况下,我们的用户面临着一系列挑战。

      【讨论】:

      • 我明白这一点,但是我如何搜索该用户是否存在该挑战?
      猜你喜欢
      • 2023-03-18
      • 2018-09-05
      • 1970-01-01
      • 2015-06-24
      • 2018-05-03
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      相关资源
      最近更新 更多