Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js mongodb中object_id的唯一性_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js mongodb中object_id的唯一性

Node.js mongodb中object_id的唯一性,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,mongo集合中自生成的对象_id是否在所有集合中都是唯一的?假设我的图书类别集合,我必须输入用户id才能获取用户保存的所有图书类别 但是如何更新图书类别的数据呢?我应该把用户id也放在我的图书类别集合中吗 module.exports.updateCategory = function(category_id,category,callback){ var update = { name: category.category_name } Produc

mongo集合中自生成的对象_id是否在所有集合中都是唯一的?假设我的图书类别集合,我必须输入用户id才能获取用户保存的所有图书类别

但是如何更新图书类别的数据呢?我应该把用户id也放在我的图书类别集合中吗

module.exports.updateCategory = function(category_id,category,callback){
    var update = {
        name: category.category_name
    }

    Product_category.findOneAndUpdate({"_id":category_id},update,callback);
}

如果我的整个应用程序的id都是unquie,那么上面的代码就可以正常工作。在我的情况下,你会怎么做?

每本书都有一个id和一个用户id,但是id足以唯一地标识书。对于图书类别,您有两种常见选择:

它可以是由图书id和类别id以及图书类别唯一标识id组成的集合。类别id指向其他类别集合。如果要为一本书查询所有类别,请按图书id查询。如果要为一个类别查询所有书籍,请按类别id查询

根据您的用例,您还可以简单地从每本书中拿出一组类别ID


在这两种情况下,我都看不到涉及用户id的任何理由。我也看不到交叉收集id冲突的任何可能性。

@RobertMoskal你能对我的情况给出你的意见吗?从你发布的代码中,我看不到交叉收集问题出现在哪里。您根据文档的id在集合中选择文档并更新一个字段。@RobertMoskal想象一下这是一个图书馆系统,每个用户都有图书和图书类别,您会将用户id存储在图书类别中吗?当你想更新一些东西时,你会做双重检查吗?比如检查用户id和对象id。