支持我的文档结构如下
var order = {
order_id : "1234",
plan_name: "Basic plan",
app_id:["app-id-1","app-id-2"]
}
它有一对多的关系结构。 我把它插入mongo像这样
db.orders.insert(order)
我还在order_id
和app_id
上创建了索引。
现在,我有app_id
,我想找到它的order_id
。
如何编写查询查找
我知道我需要使用
db.orders.find({"app_id":""})
,但app_id是一个数组。
或者我还缺少其他技术吗?
答案 0 :(得分:0)
您可以通过多种方式查询数组。 如果您想在app_id数组中找到app-id-1作为值的所有订单,您只需查询
app_id: "app-1-id"
这将返回所有在其数组中具有该值的订单。 如果您想查找具有一组应用ID的所有订单,您可以查询
app_id: {$all: <array_of_app_ids>}
要查找仅包含一组特定ID且没有其他订单的所有订单,您可以将$ all与$ size配对
app_id: {$all: <array_of_app_ids>, $size: <array_of_app_ids.length>}
但如果传递单个值,mongoDB将返回其数组中具有该值的所有条目