我应该在 REST 客户端中放入啥 JSON 来测试给定的 Schema

Posted

技术标签:

【中文标题】我应该在 REST 客户端中放入啥 JSON 来测试给定的 Schema【英文标题】:What JSON should i put in REST Client to test the given Schema我应该在 REST 客户端中放入什么 JSON 来测试给定的 Schema 【发布时间】:2016-06-15 05:20:54 【问题描述】:

我一直在尝试从给定架构插入文档,但无法通过 REST 客户端插入。代码粘贴如下:

var mongoose = require('mongoose'),
Schema = mongoose.Schema;

var countries = require('../countries/countries.model');
var Employees = require('../Employees/Employees.model');

var countryModel = new countries();
var EmpModel = new Employees();

var City = new Schema(
    name: String,
    active: Boolean,
    countryId: type:Schema.ObjectId, ref:countryModel,
    Employees: [type: Schema.ObjectId, ref: EmpModel]
);

我输入了各种样式的 JSON,但都没有成功


"name": "Delhi NCR",
"active": "true",
"countryId": country[0]._id,
Employees: [employees[1]._id]


 
"name": "Delhi NCR",
"active": "true",
"countryId": "ObjectId(xxxxxxxxx)",
Employees: ["ObjectId(xxxxxxxxx)", "ObjectId(xxxxxxxxx)"]


  
"name": "Delhi NCR",
"active": "true",
"countryId": "56dcccdddddddddaaaaaaaaa",
Employees: ["56dcccdddddddddaaaaaaaaa", "56dcccdddddddddaaaaaaaaa"]

但这些都不起作用。我应该输入什么 JSON。

【问题讨论】:

【参考方案1】:

您正在为活动字段传递一个字符串,而不是 JSON 中的布尔值。

 
  "name": "Delhi NCR",
  "active": true,
  "countryId": ObjectId("54cd6669d3e0fb1b302e54e4"),
   "Employees": [ObjectId("54cd6669d3e0fb1b302e54e4"), ObjectId("54cd6669d3e0fb1b302e54e4")]
 

【讨论】:

像这样保存 "_id" : ObjectId("56d6be820d4590xxxxxxxx39"), "Employees" : [], "countryId" : [], "__v" : 0 【参考方案2】:

您在架构定义中引用模型的方式不正确。 ref 选项告诉 Mongoose 在填充期间使用哪个模型,在您的情况下,您使用的是实际模型对象而不是带有模型名称的字符串值:

var City = new Schema(
    name: String,
    active: Boolean,
    countryId: type:Schema.ObjectId, ref: "countries",
    Employees: [type: Schema.ObjectId, ref: "Employees"]
);

重新定义架构后,您可以将 _ids 从 Employees 模型作为字符串传入,因为 Mongoose 会自动将这些转换为 ObjectIds。

"Employees": ["56dcccdddddddddaaaaaaaaa", "56dcccdddddddddaaaaaaaaa"]

【讨论】:

以上是关于我应该在 REST 客户端中放入啥 JSON 来测试给定的 Schema的主要内容,如果未能解决你的问题,请参考以下文章

建议在存储过程中放入啥逻辑?

在 python 模块文档字符串中放入啥? [关闭]

在persistence.xml 的jta-data-source 中放入啥?

在 ArrayLists () 中放入啥 [关闭]

在二进制数据文件的标头中放入啥

SnappyData:在 build.sbt 和 import 语句中放入啥,以便我可以使用 SnappySession