我使用mongodb js脚本文件定义了以下函数:
function populateNewCollection(db, col_new, col_old, daysBack, dateAttribute) {
db[col_old].find(
{ dateAttribute : {$gte: new Date("09/01/2014")}}
).sort({_id: -1}).forEach(
function(row) { db[col_new].insert(row); } ); }
我正在调用函数:
populateNewCollection(db.getSiblingDB('tracking'),'TRACKING_DATA','TRACKING_DATA.old',1, 'datecreated' )
由于某种原因,这无声地失败,但如果我硬编码dateAttribute
param,它就会如此:
function populateNewCollection(db, col_new, col_old, daysBack, dateAttribute) {
db[col_old].find(
{ 'datecreated' : {$gte: new Date("09/01/2014")}}
).sort({_id: -1}).forEach(
function(row) { db[col_new].insert(row); } ); }
我不确定我需要在这里做什么我主要是一个java开发人员,所以我认为传递字符串会起作用。我是否需要在方法中进行一些后期处理,以便这是一个mongo doc属性?
编辑:
我甚至尝试将其声明为函数中的var并且仍然无法正常工作:
function populateNewCollection(db, col_new, col_old, daysBack, dateAttribute) {
var date = new Date();
date.setDate(date.getDate() - daysBack);
var dateAt = dateAttribute;
var d = 'datecreated';
db[col_old].find(
{ d : {$gte: new Date("09/01/2014")}}
).sort({_id: -1}).forEach(
function(row) { db[col_new].insert(row); } ); }
答案 0 :(得分:1)
var query= {};
和
query["datecreated"] = {"$gte":new Date("09/01/2014")}
并且在find方法中,您可以传递查询对象。