相关疑难解决方法(0)

在MongoDB中创建自定义对象ID

我正在创建一个服务,我将使用MongoDB作为存储后端.该服务将生成用户输入的哈希,然后查看我们的数据集中是否已存在相同的哈希(+输入).

哈希将是唯一但随机的(=非增量/顺序),所以我的问题是:

  1. 它是-legitimate-对象ID使用随机值吗?例:

$object_id = new MongoId(HEX-OF-96BIT-HASH);

或者MongoDB会不同于其他服务器生成的ObjectID,因为"真正的"ObjectID还包含时间戳,machine_id等?

使用"随机"值的优缺点是什么?我想当新的_id不以任何方式递增时,引擎更新插入索引在统计上会更慢 - 我是否正确?

mongodb

34
推荐指数
4
解决办法
6万
查看次数

Mongo _id用于子文档数组

我希望为mongo数组中的对象添加一个_id作为属性.

这是好习惯吗?索引有问题吗?

mongodb

9
推荐指数
1
解决办法
9304
查看次数

Mongoose如何自动将_id添加到集合项中数组中的对象?

我有一个看起来像这样的 mongo 集合:

{
    name: string
    _id: (auto set)
    items: array[
        name: string
        url: string
        items: array[
            {
                name: string,
                url: string,
                items: []
            }
        ]
    ]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用findByIdAndUpdate(使用 mongoose)将一个项目添加到 items 数组中:

Menu.findByIdAndUpdate(
    req.body.parentid, 
    {
        $push: {
            items: {
                name: req.body.item.name, 
                url: req.body.item.url,
                items: []
            }
        }
    },
    {
        safe: true, 
        upsert: true, 
        new: true
    },
    function(err, model) {
        if (err !== null) {
            console.log(err);
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

这工作正常,但它不会_id向插入items数组的每个对象添加。我真的需要为每个人提供一个 id。

我猜它来自使用的方法,findByIdAndUpdate因为它看起来更像是更新而不是插入。如果我的想法是正确的。

使用 …

mongoose mongodb node.js

4
推荐指数
2
解决办法
3029
查看次数

标签 统计

mongodb ×3

mongoose ×1

node.js ×1