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})@蝙蝠尖叫如何处理重复错误?