Mongodb获取在特定元素之前出现的数组内的元素

时间:2016-06-24 15:08:58

标签: arrays node.js mongodb mongoose

我在node.js中使用Mongoose来查询mongoDB。我想检索一个数组的所有元素,它们恰好出现在任何特定的数组元素之前。元素的位置不是先验的,否则我会使用$ slice。

E.g

 My database document is like this 
"user_id": "sud", "coupons": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
There are thousands of documents in my database.

var last_element = 7;
Now my query is 

// HERE I WANT TO FECTH [1, 2, 3, 4, 5, 6] 
// how to write this in one single query
model.findOne({"user_id": "sud"}) 

1 个答案:

答案 0 :(得分:0)

afaik - mongodb查询没有办法询问元素位置,这是你问题中的一个关键。

由于结果集只有一个文档 - 在这种情况下,建议使用应用程序进程并完全有效。

所以使用w3school示例就像这样:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");
fruits = fruits.slice(0, a+1);