推送对象数组Mongoose NodeJS

时间:2016-06-06 00:14:08

标签: node.js

我有一个如此定义的mongoose模式,

var userSchema = mongoose.Schema({
    token: String,
    school: [{name: String, grade: String}]
});

你可以看到它是"学校"里面有两个字符串值。 我正试图推进这样的价值观,

app.post('/array', function(req, res) {
    user.find({
        token: "c30a2402dcd8e4580cef8177516e8c57149425bf961a254fd79cf7b7280a6af0adf620d210c8b66989fe7fd35a3adc2756ec2089b415d27c1a1c097e88bc4666"
    }, function(err, users) {
        if (users.length != 0) {
            user.findOne({
                token: "c30a2402dcd8e4580cef8177516e8c57149425bf961a254fd79cf7b7280a6af0adf620d210c8b66989fe7fd35a3adc2756ec2089b415d27c1a1c097e88bc4666"
            }, function(err, doc) {
                doc.ar.push("sss", "A");
                doc.save();
            });
        } else {}
    });
});

但推送不起作用,并给我一个我无法摆脱的错误。

doc.ar.push({"sss","A"});
                   ^

SyntaxError: Unexpected token ,
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:387:25)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object.<anonymous> (C:\..\app.js:27:1)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:146:18)
    at node.js:404:3

有没有办法轻松推送价值?

1 个答案:

答案 0 :(得分:1)

这是一个简单的JavaScript语法错误。你可能想要这个:

doc.ar.push({name: "sss", grade: "A"});