Angularjs Mongoose返回数组中的对象

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:

我想不通

我的API在一个数组下为我的一条路由发送整个对象,尽管它在模式中与另一条返回对象的路由完全相同

唯一的区别是一个使用FindById,而另一个使用额外的$eq来搜索要匹配的对象中的特定字段

FindById返回我的对象正常,但使用$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这很有意义。谢谢。啊,这很有道理。谢谢。啊,这很有道理。谢谢。啊,这很有道理。非常感谢。