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
Javascript 查询forEach内部的其他集合_Javascript_Mongodb - Fatal编程技术网

Javascript 查询forEach内部的其他集合

Javascript 查询forEach内部的其他集合,javascript,mongodb,Javascript,Mongodb,我想做一些类似的事情: db.ratings.find().forEach(function(doc){ var item = db.items.find({_id: doc.item_id}) var ry = item.detail.ry db.ratings.update(doc,{$set: {itd: ry}}) }) 问题是db.items.find({u-id:doc.item\u-id})正在返回一些我无法直接调用文档属性的内容。哪种方法是正确的?谢谢 db.项

我想做一些类似的事情:

db.ratings.find().forEach(function(doc){

  var item = db.items.find({_id: doc.item_id})
  var ry = item.detail.ry
  db.ratings.update(doc,{$set: {itd: ry}})

})
问题是
db.items.find({u-id:doc.item\u-id})
正在返回一些我无法直接调用文档属性的内容。哪种方法是正确的?谢谢

db.项目:

{
    "_id" : ObjectId("5461c8f0426f727f16000000"),
    "n" : "The Shawshank Redemption",
    "detail" : {
      "ry": 1992
    }
}
find()
函数返回一个
光标,您需要迭代它:

当find()方法“返回文档”时,该方法实际上是 将光标返回到文档

您的代码,已更新:

db.ratings.find().forEach(function(doc){

  db.items.find({_id: doc.item_id}).forEach(function(item){
   var ry = item.detail.ry;
   db.ratings.update(doc,{$set: {itd: ry}});
   })
})
或者您可以使用
findOne()
,它返回一个匹配的文档

db.ratings.find().forEach(function(doc){

  var item = db.items.findOne({_id: doc.item_id})
  var ry = item.detail.ry
  db.ratings.update(doc,{$set: {itd: ry}})

})

使用db.items.findOne({u id:doc.item\u id})@蝙蝠尖叫如何处理重复错误?