mongo和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
答案 0 :(得分:2)
我不明白为什么你说你在第一个查询中有重复的结果。 _id
是不同的,因此看起来有两个不同的对象。
此外,我还认为您拥有的第二个查询引用了不同的集合;即clients
,而第一个查询引用集合clientsummary
。
例如,使用mongo shell,连接到db *,并尝试以下两个:
> show collections
如果我是对的,你的数据库中有clients
和clientsummary
作为集合。然后,也尝试
> db.clientsummary.count()
这应该返回2。
请注意,您可能会在数据库中使用clientSummary
而不是clientsummary
作为集合,甚至clientsummarys
/ clientSummarys
或{{1} } / clientsummaries
因为mongo / mongoose将使用复数形式来收集,而clientSummaries
通常附在引用该集合的单词的末尾。只需使用正确的名称。
(*)您可以使用以下命令连接到db s
(可以找到您所指的集合):
mydb
(假设你在localhost上有$ mongo --shell localhost/mydb
。)