如何在 sailsJs 中使用 mongoDB 仅在数组中获取 _id 字段
How to fetch _id field only in array using mongoDB in sailsJs
我在 sailsJs
中从 mongoDB
检索数据时遇到问题。我想要一个 _id
字段的纯数组,但它 returns 一个 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);
但我需要一些捷径来让它更相关。提前致谢:)
如果您想在 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);
获取所有文档后,需要遍历并解析值。
由于数据库查询提供的是{key:value},你必须获取key的值。
试试这个,
let userIDList = [];
await col.find({
$or: [
{ permission: 'student' },
{ permission: 'staff' }
]
},{ select : ['_id'] }).toArray().forEach(function(obj) {
userIDList.push(obj._id)
});
console.log(userIDList);
您只能获取如下所示的 _id 列
let userIDList = await col.find({
$or: [
{permission: 'student'},
{permission: 'staff'}
]
},{_id:1}).toArray();
如果你想在一条命令中做到这一点,你可以试试"distinct"命令。
col.distinct("_id", {
$or: [{permission: 'student'}, {permission: 'staff'}]
})
我在 sailsJs
中从 mongoDB
检索数据时遇到问题。我想要一个 _id
字段的纯数组,但它 returns 一个 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);
但我需要一些捷径来让它更相关。提前致谢:)
如果您想在 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);
获取所有文档后,需要遍历并解析值。
由于数据库查询提供的是{key:value},你必须获取key的值。
试试这个,
let userIDList = [];
await col.find({
$or: [
{ permission: 'student' },
{ permission: 'staff' }
]
},{ select : ['_id'] }).toArray().forEach(function(obj) {
userIDList.push(obj._id)
});
console.log(userIDList);
您只能获取如下所示的 _id 列
let userIDList = await col.find({
$or: [
{permission: 'student'},
{permission: 'staff'}
]
},{_id:1}).toArray();
如果你想在一条命令中做到这一点,你可以试试"distinct"命令。
col.distinct("_id", {
$or: [{permission: 'student'}, {permission: 'staff'}]
})