我在user.js文件的导出声明中有以下行:
db.collection('myList').distinct('field1', 'field2'), function(err, items) {
res.json(items);
}
db查找在mongo命令行中运行正常。但是,当我运行网页时,我得到:
TypeError: string is not a function
我不确定如何继续这一点。我应该在返回之前以某种方式将返回值转换为字符串吗?
感谢。
答案 0 :(得分:0)
您的问题似乎没有明确定义,请考虑逻辑:
> db.info.insert({ field1: "this", field2: "that" })
> db.info.insert({ field1: "this", field2: "another" })
> db.info.insert({ field1: "this", field2: "that" })
> db.info.insert({ field1: "this", field2: "another" })
> db.info.distinct('field1', 'field2')
[ "this" ]
但你真正想要的是:
db.info.aggregate([
{$group: {_id: { field1: "$field1", field2: "$field2" } } }
])
给出了:
{
"result" : [
{
"_id" : {
"field1" : "this",
"field2" : "another"
}
},
{
"_id" : {
"field1" : "this",
"field2" : "that"
}
}
],
"ok" : 1
}
组合字段的独特结果。
我希望我们现在正在学习。
答案 1 :(得分:0)
由于一些奇怪的原因,MongoSkin抽象并不能提供对MongoDB的独特访问权限。方法。为了让工作变得与众不同,我不得不使用原生的MongoDB集合而不是抽象的MongoSkin集合。我是这样做的
var store = mongo.db(connectionString, ackOptions); store.open(function(err,resp){ resp.collection(this.options.collection, {strict: true}, function(err, myCollection) { myCollection.distinct('tag',function(err,res){ console.log(err) console.log(res) }) }); })