我在从mongoDB
的{{1}}检索数据时遇到问题。我想要一个sailsJs
字段的纯数组,但是它返回一个JSON对象数组,类似于
_id
但是我只想要ID列表,例如:
[
{_id: 'sdfdsr3434redf'},
{_id: '6sdgydewu7fr3'},
...
]
代码在下面:
['sdfdsr3434redf', '6sdgydewu7fr3', ...]
我尝试了一种方法,如下所示(@atishay_jain),效果很好,
let userIDList = await col.find({
$or: [
{permission: 'student'},
{permission: 'staff'}
]
},{ select : ['_id'] }).toArray();
但是我需要一些捷径来使其更相关。在此先感谢:)
答案 0 :(得分:3)
如果要在javascript
中进行。这是代码。
let userIDList = await col.find({
$or: [
{permission: 'student'},
{permission: 'staff'}
]},{ select : ['_id'] }).toArray();
let final = userIDList.map((v, i) => { return v._id });
console.log(final);
答案 1 :(得分:1)
获取所有文档后,您需要遍历它们并解析值。
由于数据库查询提供了{键:值},因此您必须获取键的值。
尝试一下
let userIDList = [];
await col.find({
$or: [
{ permission: 'student' },
{ permission: 'staff' }
]
},{ select : ['_id'] }).toArray().forEach(function(obj) {
userIDList.push(obj._id)
});
console.log(userIDList);
答案 2 :(得分:1)
如果要在一个命令中执行此操作,则可以尝试“ distinct”命令。
col.distinct("_id", {
$or: [{permission: 'student'}, {permission: 'staff'}]
})
答案 3 :(得分:0)
您只能获得如下所示的_id列
buildpack-deps:stretch