【问题标题】:find query in one to many relationship在一对多关系中查找查询
【发布时间】:2017-05-31 11:51:30
【问题描述】:

支持我的文档结构如下

var order = {
order_id : "1234",
plan_name: "Basic plan",
app_id:["app-id-1","app-id-2"]
}

它具有一对多的关系结构。 我像这样将它插入到mongo中

db.orders.insert(order) 

我还在order_idapp_id 上创建了索引。 现在,我有一个app_id,我想找到它的order_id

如何编写查询来查找 我知道我需要使用 db.orders.find({"app_id":""}) ,但 app_id 是一个数组。 还是我缺少其他技术?

【问题讨论】:

标签: mongodb one-to-many


【解决方案1】:

您可以通过多种方式查询数组。 如果您想在 app_id 数组中查找所有以 app-id-1 作为值的订单,您可以简单地查询

app_id: "app-1-id" 

这将返回在其数组中具有该值的所有订单。 如果您想查找所有具有一组应用程序 ID 的订单,您可以查询

app_id: {$all: <array_of_app_ids>}

要查找仅包含一组特定 ID 且不包含其他 ID 的所有订单,您可以将 $all 与 $size 配对

app_id: {$all: <array_of_app_ids>, $size: <array_of_app_ids.length>}

但是如果你传递一个值,mongoDB 将返回所有在其数组中具有该值的条目

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 2019-02-02
    • 2014-07-14
    • 2015-03-31
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多