我要在这里完成的工作是通过一个值找到一个对象,然后将该对象添加到另一个对象属性中。
代码
q = { _id:Schema.Types.ObjectId, 类别:QuestionCategory, 问题:字符串, 名称:字符串, };
var request = require('request').defaults({ encoding: null });
var url = "URLHERE";
request(url, function(error, response, data) {
if (!error && response.statusCode == 200) {
var image = new Canvas.Image();
image.src = data;
var texture = new THREE.Texture(image);
texture.needsUpdate = true;
var material = new THREE.MeshPhongMaterial({map: texture, overdraw: true});
} else {
response = 'error';
}
});
错误:
QuestionCategory.findOne().sort({ category: "ExampleCategory" }).exec((err, doc) => {
if(err)
{
return err
}
q.category = doc;
})
我也尝试了没有.sort的情况,并在findOne中编写了过滤器,但是也没有用
模式
throw new TypeError('Invalid sort value: {' + field + ': ' + value + ' }');
^
TypeError: Invalid sort value: {category: ExampleCategory }
答案 0 :(得分:0)
如果尝试使用类别字段ExampleCategory查询文档,则需要进行查找查询而不是排序查询 而且,当您使用findOne时,也无需对数据进行排序,因为它只会得到一个QuestionCategory QuestionCategory.findOne({category:“ ExampleCategory”})。exec(err,doc)=> {})
答案 1 :(得分:0)
您不能像这样sort()
那样使用sort({ category: "ExampleCategory" })
,首先需要像
.sort({ category: -1 })
或.sort({ category: 1 })
,在执行从数据库(例如sort()
)的顶部提取单个记录时,我们不能使用findOne()
。 sort()
主要用于分别对数据和密钥进行排序。顺便说一下,您可以通过以下查询获得所需的结果:
QuestionCategory.find({}).sort({ _id: -1 }).limit(1)