2014-11-08 123 views
2

非常适合mongo和猫鼬。猫鼬返回重复结果

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: '[email protected]', 
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: '[email protected]', 
LastName: 'test', 
FirstName: 'test' } ] 

双重结果我得到这个从查询

db.clients.find() 
{ "_id" : BinData(4,"U/UnaPQyRxqtc1iPJP7Lyw=="), "Contact" : { "FirstName" : "test", "LastName" : "test", "EmailAddress" : "[email protected]", "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

回答

2

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

此外,我还认为你有第二个查询引用了不同的集合;即clients,而第一个查询是指集合clientsummary

例如,使用蒙戈外壳,连接到数据库*,并尝试以下两种:

> show collections 

如果我是正确的,你有两个clientsclientsummary在你的数据库集合。然后,也尽量

> db.clientsummary.count() 

这应返回2.

注意,这可能是你有clientSummary而不是clientsummary为收集你的数据库的情况下,甚至clientsummarys/clientSummarysclientsummaries/clientSummaries因为mongo/mongoose将使用复数作为集合,并且s通常附在指代集合的单词的末尾。只需使用正确的名称。

(*)您可以使用以下命令连接到数据库mydb(你指的集合可以找到):

$ mongo --shell localhost/mydb 

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

+0

基督有怜悯。我责备尖叫的孩子。多么尴尬。好吧,我打算把你的标记作为正确的答案,但是我会试着删除这个以抹掉证据 – Raif 2014-11-09 00:20:26

+1

嘿,它可以发生在任何人身上,特别是如果你是新来的mongo/mongoose。 – MightyMouse 2014-11-09 00:21:43

+0

对我来说同样的问题,但略有不同的原因,我使用mongoimport(grunt task)来上传数据,但是在添加项目之前并没有删除数据库,每次运行grunt任务时,都会添加一个重复项。 – mwilson 2017-04-05 02:25:40