mongodb - 如何通过查询字符串 Restfully 实现连接

标签 mongodb mongoose query-string restful-url

我们的堆栈目前使用 mongoose 作为 ODBM,我想知道我究竟应该如何实现 RESTFUL 请求来确定是否填充外键(即外键 _id 属性被整个文档或部分文档替换)来自另一个集合的文档)。

我知道我可以发送类似的东西

?populate=CollectionName&populateFields=fieldsnames`

通过查询字符串,但对我来说这似乎很老套,我想知道在这种情况下什么是标准/最佳实践

最佳答案

MongoDb 没有连接。如果关联的数据足够小,那么建议嵌入文档。 如果采用该方法,则可以执行这个简单的查询来检查嵌入的文档字段是否为文档。

0 < db.products.count({_id : 3, rebateProgram : { $type : 3} })

在 Mongoose 中,我认为是

0 < productModel.find({}).where({_id : 3, rebateProgram : { $type : 3} }).count()

rebateProgram : {$type : 3} 表示仅匹配带有嵌入式文档的 rebateProgram 字段。 3是嵌入文档的BSON类型。

REST 风格的网址

检查文档 a 属性的 restful url 可能如下所示。

请求将是 GET,因为您正在检索一个值而不是修改任何数据。

GET: /??/:collectionName/:documentId/action

示例:

要求:

GET: /api/products/3/status?hasObject=rebateProgram

响应:

{
    id: 3,
    hasObject : { rebateProgram : true },
    success : true,
    errMsg : ""
}

但是,如果它始终是您要检查的同一个字段,那么请在响应中包含嵌入字段的状态。 像这样。 示例:

要求:

GET: /api/products/3/status

响应:

{
    id: 3,
    hasValidRebateProgram : true,
    success : true,
    errMsg : ""
}

更多信息:

关于mongodb - 如何通过查询字符串 Restfully 实现连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28181507/

相关文章:

java - 从 spring mongo 查询获取 "_id"而不是整个对象/对象列表

javascript - Passport.js 和 MongoStore 错误 "Connection strategy not found at MongoStore"

javascript - Mongoose 查询过去 24 小时内获得点赞的文档

javascript - 限制 .split() 拆分的次数,而不是 chop 结果数组

javascript - 如何添加或更新查询字符串参数?

.net - 带有 url 编码和符号的查询字符串在 Request.Url 中过早解码

javascript - 将文档中的嵌套对象与可能匹配的数组进行匹配

mongodb - 在 MongoDB 中存储 friend 关系?

javascript - 设置 Mongoose 文档的排序顺序

mongodb - 使用文档中存储的值查询 $near