如何过滤出你在mongodb中切片的相同键

时间:2015-04-30 10:33:18

标签: node.js mongodb mongojs

我有一个集合:

[
{_id: "1234", myId: 1, a: [1,2,3], b: [23,3,2], c: [3,234,4], ...},
{_id: "5678", myId: 2, a: [21,32,3], b: [32,123,4], c: [32,32,12], ...},
{_id: "3242", myId: 3, a: [21,23,2], b: [12,2,32], c: [12,213,1], ...}
]

每个文档中都有更多的数组,而且每个数组的大小都要大得多。我希望能够在我想要的两个键上应用 $ slice 投影(以检索50个最新值)并使用{{返回仅返回那两个键 3}}

我知道如何单独完成任务,但是这两个人的交集我无法弄清楚。

因此,在find()函数中使用{a: {$slice: -50}, b: {$slice: -50}}作为投影将返回最后50个条目,而{a: 1, b: 1}将仅返回find()结果中的这两个键。

如何同时进行这两项工作?

1 个答案:

答案 0 :(得分:0)

您可以尝试在投影中添加虚拟字段:

{
    "javascript.validate.lint.unknownProperty": "ignore"
}

<强>返回

db.test.find({}, {a: {$slice: -2}, b: {$slice: -2}, dummy: 1, _id: 0})