Angularjs Mongoose返回数组中的对象
我想不通 我的API在一个数组下为我的一条路由发送整个对象,尽管它在模式中与另一条返回对象的路由完全相同 唯一的区别是一个使用FindById,而另一个使用额外的$eq来搜索要匹配的对象中的特定字段 FindById返回我的对象正常,但使用$eq的对象在数组中返回它。它们的模式是相同的。这只是我必须面对的一种癖好吗Angularjs Mongoose返回数组中的对象,angularjs,node.js,mongodb,express,mongoose,Angularjs,Node.js,Mongodb,Express,Mongoose,我想不通 我的API在一个数组下为我的一条路由发送整个对象,尽管它在模式中与另一条返回对象的路由完全相同 唯一的区别是一个使用FindById,而另一个使用额外的$eq来搜索要匹配的对象中的特定字段 FindById返回我的对象正常,但使用$eq的对象在数组中返回它。它们的模式是相同的。这只是我必须面对的一种癖好吗 apiRouter.get('/accts/:acct_id', function(req, res) { Acct.find( ({ acct_id: { $eq:
apiRouter.get('/accts/:acct_id', function(req, res) {
Acct.find( ({ acct_id: { $eq: req.params.acct_id } } ), function(err, acct) {
if (err) res.send(err);
res.json(acct);
});
});
apiRouter.route('/users/:user_id')
// get the user with that id
.get(function(req, res) {
User.findById(req.params.user_id, function(err, user) {
if (err) res.send(err);
// return that user
res.json(user);
});
})
以及绑定数据的控制器
.controller('acctView', function($routeParams, Acct) {
var vm = this;
// set a processing variable to show loading things
vm.processing = true;
Acct.get($routeParams.accts_id)
.success(function(data) {
vm.processing = false;
vm.accts = data;
});
});
我最终不得不使用acct.accts[0].acct\u id
以角度方式访问我的对象,而我的所有其他页面都不会将该对象作为额外数组接收
架构(如果需要):
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// acct schema
var AcctSchema = new Schema({
acct_id: String,
acct_name: String,
acct_address_1: String,
acct_address_2: String,
acct_address_city: String,
acct_address_state: String,
acct_address_zip: Number,
acct_address_country: String,
recipients: [],
notes: {
dist: String,
misc: String
}
});
module.exports = mongoose.model('Acct', AcctSchema);
findById()只返回一个文档。而find()返回数组中的多个文档。您可以使用而不是find(),它将只返回一个文档。findById()只返回一个文档。而find()返回数组中的多个文档。您可以使用而不是find(),它将只返回一个文档。findById()只返回一个文档。而find()返回数组中的多个文档。您可以使用而不是find(),它将只返回一个文档。findById()只返回一个文档。而find()返回数组中的多个文档。您可以使用而不是find(),它将只返回一个文档。Ahhh这很有意义。谢谢。啊,这很有道理。谢谢。啊,这很有道理。谢谢。啊,这很有道理。非常感谢。