从mongodb-node js创建项目数组
Create array of items from mongodb - node js
我是mongodb和node-js的新手,所以如果这很简单,请原谅。所以我有一个模式:
var mongoose = require('mongoose');
var CatSchema = new mongoose.Schema({
cat_name: String,
cat_value: Number
});
module.exports = mongoose.model('Cat', CatSchema);
当我将数据添加到dbs时,它看起来是这样的:
> db.cats.find()
{ "_id" : ObjectId("..."), "cat_name" : "test1", "__v" : 0, "cat_value" : 55 }
{ "_id" : ObjectId("..."), "cat_name" : "test2", "cat_value" : 24, "__v" : 0 }
{ "_id" : ObjectId("..."), "cat_name" : "test1", "__v" : 0, "cat_value" : 70 }
我想调用dbs,并为集合中的每个文档创建一个cat_name数组。
所以最后的效果是这样的:
var cat_names = [test1, test2, test1 ... ]
知道怎么做吗?我试着使用foreach
循环,db.collection('cats')
,但是我就是想不通。
这对我很有用:var cat_names=[];
Cat.find(function(err, data){
if(err){
console.log(err);
}
var stringify = JSON.stringify(data)
content = JSON.parse(stringify);
content.forEach(function(result){
cat_names.push(result.cat_name);
})
console.log(cat_names);
})
您可以使用exec,这将允许您返回检索到的JSON文档的数组。
db.cats.find(function(err, cats){
var arr_docs = cats.map(function(cat) { return cat.cat_name});
if(err){
res.json(err)
} else {
res.json(arr_docs)
}
})
var cat_names = [];
db.cats.find(function(err, data){
if(err){
console.log(err);
}
data.forEach(function(result){
cat_names.push(result.cat_name);
})
console.log(cat_names);
})
我已经测试了这个代码,并且可以很好地满足您的需求。
Cat
.find()
.then(function(cat){
var cat_Names_Array = [];
cat.map(function(value){
cat_Names_Array.push(value.cat_name);
});
return cat_Names_Array;
})
.catch(function(err){
console.log('err in finding:',err);
});
我希望它能解决你的疑问。
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- 如何将项目数组移位/旋转到JavaScript数组中的特定索引
- AngularJS计算ID等于的JSON数组中的项目数
- 限制可观察数组中的项目数
- 将数组中的项目数相加
- 通过从 PHP 传入数组,在 java 脚本中填充项目数组及其值
- 如何计算数组中以最高数字开头的项目数
- 如何使用Json数组计算用户在测验中回答的项目数
- 需要索引项目数在数组上悬停