如何使用sailsJs MongoDB的只有数组提取_id场

问题描述 投票:3回答:4

我有一个问题,从mongoDBsailsJs检索数据。我想_id场的纯数组,但它返回JSON对象的数组,这是一样的东西

[
      {_id: 'sdfdsr3434redf'},
      {_id: '6sdgydewu7fr3'}, 
      ...
]

但我想只有像ID列表:

['sdfdsr3434redf', '6sdgydewu7fr3', ...]

代码如下:

  let userIDList = await col.find({
                        $or: [
                            {permission: 'student'},
                            {permission: 'staff'}
                        ]
                },{ select : ['_id'] }).toArray();

我想一个方法,它的工作原理以及下面(由@atishay_jain)

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);

但我需要一些捷径来做到这一点更为重要。提前致谢 :)

node.js mongodb mongoose sails.js
4个回答
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
投票

让所有的文件后,你需要通过他们去和分析的价值。

由于数据库查询中提供{键:值},你必须抓住关键的价值。

尝试这个,

    let userIDList = [];

    await col.find({
        $or: [
            { permission: 'student' },
            { permission: 'staff' }
        ]
    },{ select : ['_id'] }).toArray().forEach(function(obj) { 
        userIDList.push(obj._id) 
    });
    console.log(userIDList);

1
投票

如果你想这样做的一个命令,你可以试试“独特”的命令。

col.distinct("_id", {
    $or: [{permission: 'student'}, {permission: 'staff'}]
})

0
投票

你可以像下面仅列_id

let userIDList = await col.find({
                        $or: [
                            {permission: 'student'},
                            {permission: 'staff'}
                        ]
                },{_id:1}).toArray();
© www.soinside.com 2019 - 2024. All rights reserved.