我在应用程序中使用了mongoose,并尝试检索类型为country的文档并获取元数据字段。
我的文档如下所示,
我有代码,
dbHelper.query(mongoose.model('_entity'), {
'type': 'country'
}, function (error, data) {
callback(data);
});
dbHelper:
query: function (model, conditon, options) {
return new Promise(function (resolve, reject) {
options = options || {};
model.find(conditon, {}, options, function (error, data) {
if (error)
console.log("error is"+err);
reject(error);
console.log("data is "+data);
resolve(data);
})
})
}
如何更改此选项以选择 metadata
字段?
答案 0 :(得分:1)
您需要select
:
mongoose
.model('_entity')
.find()
.where('type').equals('country')
.select('metadata')
.exec( function(error, data) {
callback(data);
});
更新:例如projection = ["metadata", "name"]
query: function (model, conditon, projection, options) {
return new Promise(function (resolve, reject) {
options = options || {};
projection = projection || [];
model.find(conditon, projection.join(" "), options, function (error, data) {
if (error)
console.log("error is"+err);
reject(error);
console.log("data is "+data);
resolve(data);
})
})
}
答案 1 :(得分:1)
您可以稍微更改visible
查询,只选择.site-header {
position: relative;
overflow: hidden; // Enforce BFC
}
或您想要的find
。
metada
如果您无法在现有fields
查询中添加元数据,则可以尝试其他方法。
在查询函数中添加另一个参数model.find(conditon, {"metadata" : 1}, options, function (error, data) {
if (error)
console.log("error is"+err);
reject(error);
console.log("data is "+data);
resolve(data);
});
。
find
并像这样使用它:
projection
我认为这适用于您的情况。