首页 > 解决方案 > Mongo(Node Js,Keystone)字段选择和切片不能与不同的错误一起使用:

问题描述

我们如何使用nodejs(keystone框架)在mongo中的查询中集成distinct并选择字段值不等于指定值的文档?或者只是基本上在mongo中。我收到一个错误,即字段选择和切片不能与不同的错误一起使用:。任何想法?或解决方案?我确实尝试使用 Syntax: {field: {$ne: value} } 这就是错误。此外,当限制不能与不同的错误一起使用时,我们如何包含限制:限制不能与不同的一起使用。

询问

keystone.list('Customer').model.find({ customer_id: { $in: locals.data.customers } },  { vin: { $ne: vin } }).distinct('vin').limit(4) ....

标签: node.jsmongodbdistinctlimitkeystonejs

解决方案


您可以将查询添加到不同但不能跳过和限制

https://docs.mongodb.com/manual/reference/method/db.collection.distinct/#specify-query-with-distinct

相反,您可以将聚合管道用作

db.customer.aggregate(
    { $match:{ customer_id: { $in: locals.data.customers } }},
    { $group:{_id:"$vin"}},
    { $skip: skip},
    { $limit: limit},
    { $group:{_id:null,vin:{$push:"$_id"}}}
);

推荐阅读