簡體   English   中英

用貓鼬更新單個子文檔屬性

[英]Update single sub-document attribute with Mongoose

我有一個帶有一系列子文檔的Mongo Collection,如下所示:

var aliasSchema = new Schema({
  name: String,
  alias_type: String,
  isCommonName: { type: Boolean, default: false }
});    

var parentSchema = new Schema(
      {
        name: String,
        description: { type: String, required: false },
        observation: { type: String, required: false },
        indexed: { type: Boolean, default: true },
        aliases: [aliasSchema],
    }

我想更新一個別名對象的alias_type

我嘗試過使用兩種方法與貓鼬

1。

Parent.findOneAndUpdate({'aliases.name': aliasName },{$set: {"aliases.$.alias_type": req.body.aliasForm.alias_type}}, {new: true}, function(err, aliasDoc) {
        if (err) {
            res.status(400)
            res.send(err);
        }
        console.log(aliasDoc);
        res.status(200);
        res.send(aliasDoc);
    });

2。

Parent.update({'aliases.name': aliasName },{$set: {"aliases.$.alias_type": req.body.aliasForm.alias_type}}, function(err, aliasDoc) {
        if (err) {
            res.status(400)
            res.send(err);
        }
        console.log(aliasDoc);
        res.status(200);
        res.send(aliasDoc);
    });

但是,我仍然無法更新alias_type。 當我像這樣在mongo控制台中運行選項(1)時,它起作用了:

db.getCollection('parent').findOneAndUpdate({'aliases.name': 'SomeValue' },{$set:{'aliases.$.alias_type': 'AnotherValue'}})

誰能告訴我我在做什么錯?

我在調用參數之一時犯了一個錯誤。 我在問題中發布的update()技術有效:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM