我尝试将对象保存到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' } ] }