我在mongoDB中创建了一个简单的表(文档?)。 我正在使用Node和Mongoose进行连接。
在我的方法中,我正在调用model.find({})
来检索所有记录,然后遍历它们以查找所需的记录(这在循环内-我认为打数据库的效率更高)一次,然后在内存中进行处理以避免每次都连接到数据库。
当我console.log
比赛时,我正在打印完整的对象。但是,当我打印出一个属性时,它会将其列为未定义。此属性是一个数组,并且发生在另一个具有我作为测试添加的数组的属性中。我在这里想念什么?
这是我的代码段:
Documents.find({}).then(docsData => { // Documents is my model
docs.entries.forEach(entry => { // docs.entries is the collection I want to match to
const match = docsData.find(
doc => doc['dropboxId'] == entry['id']
);
if (match) {
entry['tags'] = match.tags;
console.log('match tags', match.tags); // this prints out undefined
console.log('match', match); // this prints out the object with tags
}
有什么想法吗?
答案 0 :(得分:1)
match
是一个Mongoose文档,与普通的JS对象不同。我想您需要这样做:
entry['tags'] = match.get('tags');