Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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
Javascript 如何保存Mongo文档';在嵌套字段中有自己的\u id吗?_Javascript_Mongodb_Meteor - Fatal编程技术网

Javascript 如何保存Mongo文档';在嵌套字段中有自己的\u id吗?

Javascript 如何保存Mongo文档';在嵌套字段中有自己的\u id吗?,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,此Meteor服务器代码尝试将新创建的属性\u id复制到子文档中,但失败 怎样才能做到呢 编辑: 代码使用matb33:collection hook MyCollection.after.insert(function(userId, doc) { if (doc.element === 'myString') { doc.values[0]._id = doc._id; } }); 在matb33:collection hooks的after钩子中对doc进行变异不会导致

此Meteor服务器代码尝试将新创建的属性
\u id
复制到子文档中,但失败

怎样才能做到呢

编辑:
代码使用
matb33:collection hook

MyCollection.after.insert(function(userId, doc) {
  if (doc.element === 'myString') {
    doc.values[0]._id = doc._id;
  }
});

matb33:collection hooks
after
钩子中对
doc
进行变异不会导致运行额外的查询。如果希望,您需要显式地
更新
文档

但是,在这种特殊情况下,如果您确实需要文档中重复的
\u id
,则可以生成
\u id
,并在插入文档时指定它

您可能可以使用
MyCollection.\u makeNewID()
方法,因为此API已经有几年没有更改了,并且它是
Mongo
包内部使用的

const _id = MyCollection._makeNewID();
const doc = {
  _id,
  values: [
    {
      _id,
      ...
    }, {
      ...
    }
  ]
};

MyCollection.insert(doc);

matb33:collection hooks
after
钩子中对
doc
进行变异不会导致运行额外的查询。如果希望,您需要显式地
更新
文档

但是,在这种特殊情况下,如果您确实需要文档中重复的
\u id
,则可以生成
\u id
,并在插入文档时指定它

您可能可以使用
MyCollection.\u makeNewID()
方法,因为此API已经有几年没有更改了,并且它是
Mongo
包内部使用的

const _id = MyCollection._makeNewID();
const doc = {
  _id,
  values: [
    {
      _id,
      ...
    }, {
      ...
    }
  ]
};

MyCollection.insert(doc);

“你是在用类似的东西吗?”AnthonyAstige是的。发布更新。为什么不在插入文档时生成
\u id
?这将消除运行这些额外查询的需要。@MasterAM great idea,以前从未尝试过,它是否必须存在于此集合中插入的所有文档中,或者只能用于此插入?是否使用类似于?AnthonyAstige Yes。发布更新。为什么不在插入文档时生成
\u id
?这将消除运行这些额外查询的需要。@MasterAM great idea,以前从未尝试过,它是否必须存在于插入此集合的所有文档中,或者只能用于此插入?