【问题标题】:Posting Schema.Types.ObjectId arrays to MongoDB将 Schema.Types.ObjectId 数组发布到 MongoDB
【发布时间】:2016-02-03 22:21:07
【问题描述】:

如何将一组 Schema.Types.ObjectId (s) 发布到 MongoDB?我正在尝试创建用户组,这是一组“用户”模型,例如

var UserGroup = new Schema({
    users: [{
        type: Schema.Types.ObjectId,
        ref: 'User'
    }]
});

新增用户组功能

module.exports.create = function(request, response) {
    var group = new UserGroup({
        users = request.body.users
    });

    group.save(function(error) {
        if(error) { throw error; } else { response.send('Group Created Successfully.');
    });
};

我目前正在使用 Postman 来测试功能,数据究竟应该如何发布?

作为 Javascript 数组,即 ['A_USER_ID', 'A_USER_ID'] ?

谢谢!

【问题讨论】:

  • 您尚未在架构中定义数组。它应该是"user": [{ "type": Schema.Types.ObjectID, "ref": "User" }]。注意它周围的[]。并确保您有一个正文解析器集,可以正确转换您发送的数组数据。
  • @BlakesSeven 抱歉,上面不是我的应用程序的实际代码,我很快写到,当我创建帖子时,实际代码是一个数组。 And make sure you have a body parser set that is correcty converting the array data you are sending. - 我该怎么做?感谢您的回复!

标签: arrays node.js mongodb mongoose database


【解决方案1】:

@Answer

我使用的是 select() 函数的旧语法,因此将无效参数传递给 $push 函数。发送请求时,我只需将ObjectIds 作为id,id,id 传递,一旦它们到达服务器,只需使用var my_array = request.body.users.split(','); 将其放入数组中,然后使用以下命令将其推送到数据库:

$push: { users: { $each: my_array } }

我希望这对您有所帮助,文档在此问题上并不是特别清楚。

【讨论】:

    猜你喜欢
    • 2019-01-18
    • 2018-11-27
    • 2020-07-19
    • 2016-04-02
    • 1970-01-01
    • 2018-09-11
    • 2023-04-03
    • 2016-09-12
    • 1970-01-01
    相关资源
    最近更新 更多