为什么mongo在保存之前裁剪数组?

时间:2017-01-11 09:03:59

标签: ajax mongodb mongoose

我尝试将对象保存到mongoDb的集合中。 对象内容对象数组(name' Children')。如果Children数组长度超过20,mongo会返回空的Children数组(它只包含一个具有mongo' s _id属性的对象)。

如何确定错误的位置?

var object = {
    "BrowseNodeId": "2619526011",
    "Name": "Appliances",
    "IsCategoryRoot": "1",
    "Children": [{
        "BrowseNodeId": "3737671",
        "Name": "Air Conditioners"
    },
    // Here 30 objects {}
    ],
    "Ancestors": {
        "BrowseNodeId": "2619525011",
        "Name": "Appliances"
    },
};

我使用$ .ajax进行帖子查询:

$.ajax({
    url: 'http://localhost:8005/api/category',
    data: object,
    method: 'POST',
    dataType: 'application/json'
}).done((res) => {
    console.log(res);
    // => returns object with Children.length == 1
})

但是如果我使用Postman进行帖子查询 - 对象来到我的Child数组长度,因为我期望== 20.

Mongoose架构:

mongoose.model('category', new mongoose.Schema(
    {
        BrowseNodeId: Number,
        Name: String,
        Children: [{
            BrowseNodeId: Number,
            Name: String,
        }],
        Ancestors: {
            BrowseNodeId: Number,
            Name: String,
        },
        level: Number,
    }
))

http://localhost:8005/api/category的实施:

var koa = require('koa');
var router = require('koa-router')();
var koaRestMongoose = require('koa-rest-mongoose');
var cors = require('koa-cors');

var mongoUrl = '127.0.0.1:27017/dbname';
var mongoose = require('mongoose');
mongoose.connect(mongoUrl);

var model = {
    category: mongoose.model('category', new mongoose.Schema(
        {
            BrowseNodeId: Number,
            Name: String,
            Children: [{
                BrowseNodeId: Number,
                Name: String,
            }],
            Ancestors: {
                BrowseNodeId: Number,
                Name: String,
            },
            level: Number,
        }
    )),
    item: mongoose.model('item', new mongoose.Schema(
        {
            BrowseNodeId: Number,
            Name: String,
        }
    )),
}


var app = koa();
app.use(cors());

koaRestMongoose(app, router, model.category, '/api');
koaRestMongoose(app, router, model.item, '/api');

app.use(router.routes());
app.listen(8005);

我认为它可能是架构问题

UPD

当我使用ajax请求时,身体是:

Cat: { Name: 'Test',
  'Children[0][BrowseNodeId]': '11',
  'Children[1][BrowseNodeId]': '11' }

邮差请求是:

  Children: [ { BrowseNodeId: '11' }, { BrowseNodeId: '11' } ] }

0 个答案:

没有答案