mongoose返回重复的结果

对芒果和mongoose来说很新奇。

我有

var mongoose = require('mongoose'), errorHandler = require('./errors'), ClientSummary = mongoose.model('ClientSummary'); exports.list = function(req, res) { ClientSummary.find().sort('-LastName').exec(function(err, clients) { if (err) { return res.status(400).send({ message: errorHandler.getErrorMessage(err) }); } else { console.log(clients); res.jsonp(clients); } }); }; 

这会为每个客户返回双倍的结果

我从控制台复制这个

 [ { _id: '_?\u0007Z?WM???3\u0016?\u0017', ArchivedDate: Sun Dec 31 0 18:00:00 GMT-0600 (Central Standard Time), ArchiveDate: Sat Nov 08 2014 17:18:55 GMT-0600 (Central Standard Time), Archived: false, Phone: null, EmailAddress: 'test@test.com', LastName: 'test', FirstName: 'test' }, { _id: '??\u0002otsF???\u000fF\u0010\u0019\n', ArchivedDate: Sun Dec 31 0 18:00:00 GMT-0600 (Central Standard Time), ArchiveDate: Sat Nov 08 2014 17:18:55 GMT-0600 (Central Standard Time), Archived: false, Phone: null, EmailAddress: 'test@test.com', LastName: 'test', FirstName: 'test' } ] 

我从查询中得到这个

 db.clients.find() { "_id" : BinData(4,"U/UnaPQyRxqtc1iPJP7Lyw=="), "Contact" : { "FirstName" : "test", "LastName" : "test", "EmailAddress" : "test@test.com", "Phone" : null, "PhoneSecondary" : null }, "Address" : null, "Source" : null, "SourceNotes" : "asdf", "Archived" : false, "ArchivedDate" : ISODate("0001-01-01T00:00:00Z"), "StartDate" : ISODate("0001-01-01T00:00:00Z") } 

任何想法将不胜感激

谢谢,

RAIF

我不明白你为什么说在第一个查询中有重复的结果。 _id是不同的,所以看起来有两个不同的对象。

此外,我也认为你有第二个查询是指另一个集合; 即clients ,而第一个查询是指收集clientsummary

例如,使用mongo shell,连接到db *,并尝试以下两个:

 > show collections 

如果我是对的,你的clientsclients都可以作为数据库中的集合。 然后,也试试

 > db.clientsummary.count() 

这应该返回2。

请注意,可能是这样的情况,你有客户clientSummary而不是clientsummary集合在你的数据库,甚至clientsummarys / clientSummarysclientsummaries / clientSummaries作为mongo / clientSummaries将使用复数的集合和s通常是附加到最后这个词指的是收集。 只需使用正确的名称。

(*)您可以使用以下命令连接到db mydb (您可以find引用的集合):

 $ mongo --shell localhost/mydb 

(假设你在本地主机上有mydb