哪种类型存储MongoDB ObjectId数组?

迈克尔·霍勒(Michael Hoeller)

我想保存一个通过REST接口通过mongoose到mongodb的ObjectId数组。当我将REST接口中的objectIds保存到DB时,我经常遇到一个转换错误的问题服务器端代码用打字稿编写。

该架构为:

var WaSchema = new mongoose.Schema({
    ownerId: { type: 'String', required: true },
    options: { type: 'String', required: false },
    launch:  [{ type : 'ObjectId', required: true }],
});

从REST接口中,我获得了“字符串”字符串数组: launch: Array<string>

这是我目前进行保存的方式:

WaModel.findOneAndUpdate(query, {
            ownerId: userId,
            options: wa.options,
            launch: wa.launch
        },
        { upsert: true },
        (err, doc) => {
            if (err) throw err
            else return 'successfully saved/updated';
        })
  1. REST接口中的ObjectId如何看起来必须正确转换?只是像“ 575e52790c0fc76a11e381d0”这样的字符串,还是需要像ObjectId(“ 575e52790c0fc76a11e381d0”)这样的前缀?

  2. 数组最后看起来如何?这取决于#1的答案

  3. 我看到了填充功能,这对您有帮助吗?

瓦蒂卡

1)如果您使用猫鼬,则无需添加前缀ObjectId。您可以将其保存为参考ID的数组。

var insertData = {
            ownerId: userId,
            options: wa.options,
            launch:  [ '56cea954d82cd11004ee67b5','56ceaa00d82cd11004ee67bc' ]
           }

2)最后,您的数组将如下所示。

"launch" : [ 
        ObjectId("56cea954d82cd11004ee67b5"), 
        ObjectId("56ceaa00d82cd11004ee67bc")            
    ],

3)是的,在这里填充功能将很有帮助。它将填充整个数组。填充后看起来像

"launch" : [ 
             { _id: '56cea954d82cd11004ee67b5',
               .... other fields
             },
             { _id: '56ceaa00d82cd11004ee67bc',
              .... other fields
             },
          ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

哪种类型的sql db可以在列中存储声音或数组数据?

哪种类型具有多维数组?

MongoDB获取ObjectId数组的值

C ++中使用哪种类型来定义数组大小?

您如何决定要使用哪种类型的数组?

哪种类型的变量最适合数组?

使用更新 mongoDB 从 objectId 数组中删除

MongoDB 聚合填充/替换 ObjectId 数组

从数组MongoDB获取唯一ObjectId的计数

mongodb 不会从 ObjectId 数组中删除元素

搜索对象数组以匹配mongodb中的objectId

MongoDB聚合以实际文档替换ObjectId数组

MongoDB - 查询 ObjectId 嵌套数组

MongoDB,使用$ nin时,ObjectId的数组无法识别为数组

存储库模式属于哪种类型?

如何将单个 ObjectId 转换为 MongoDB Compass 中的 ObjectId 数组

无法推送元素类型 ObjectId 的猫鼬数组

NodeJS和MongoDB-ObjectId数组如何返回对象

如何使用MongoDB(Mongoose)在集合中添加/更新ObjectId数组?

mongodb数组字段可以保存多少个BSON ObjectId

Mongodb $ pull执行以从嵌套子数组中删除ObjectId(“ ... id”)。

mongodb过滤与数组中的objectid相关联的内容状态

MongoDB $查找具有引用objectId的对象数组

嵌入式文档数组中的MongoDB Aggregate ObjectId

只能存储一种类型的对象的数组?

std :: remove_cv应该在const T数组上产生哪种类型?

尝试交换二维数组中的元素时应使用哪种类型的列表?

前端的MongoDB ObjectID类型

如何在mongodb中使用ObjectId更新对象数组中的字符串数组?