我正在尝试在Electron
中进行CRUD操作,其中使用MongoDB
,Mongoose
Electron
连接到数据库。
我有一个函数list
用于返回Mongoose
的“返回”。当我调试返回数据时,在我的终端中显示正确
ipc.on('products.list', function(event, query) {
Service.list(query, function(err, data) {
console.log(data); // this will be print correct result
event.sender.send('product.list', data);
});
});
代码上半部分的结果:
[ { _id: 55c15f2981260a6f0ef8a657,
__v: 0,
deleted_at: '',
updated_at: '',
created_at: Tue Aug 04 2015 21:51:52 GMT-0300 (BRT),
measure: '',
aplication: '',
model: 'Mode XBA',
reference: 'Reference test 123',
code: '2028' } ]
但是当我通过客户端调试返回数据时,结果不正确并且不等于服务器端打印。
客户端代码:
ipc.on('product.list', function(data) {
window.data = data;
console.log(data); // this will print incorrect result
});
ipc.send('products.list', {});
收到客户方的结果:
{
"$__":{....},
"_doc":{...},
"_posts":{...},
"_pres":{...},
"isNew":false
}
在每个元素中包含更多对象。
为什么会这样?如何解决这个问题?
答案 0 :(得分:0)
我解决了这个问题!
此返回来自Mongoose
{
"$__":{....},
"_doc":{...},
"_posts":{...},
"_pres":{...},
"isNew":false
}
对于仅返回属性,需要添加选项{lean : true}
例如:
Model.find(this.query)
.lean()
.exec(function(err, data) {}
);
中的更多细节